星星博客 »  > 

c#入门-方法的参数

带参数的方法

上一节我们学习了死方法。
就像开始学习输出语句时把要输出的东西全都写死在里面。
有的时候,方法也需要根据情况来执行。
比如:写一个方法,判断一个数是否大于3,如果大于则输出“不是一两次的事了”,否则输出“事不过三”

	public void 一个方法()
	{
		int a = 0;
		Console.WriteLine(a switch { > 3 => "不是一两次的事了", _ => "事不过三" });
	}

那么,现在的问题是如何将判断的那个数和变量a联系起来,如何从不修改的方法访问外部数据


参数

为了解决这个问题,需要用到参数
示例:

public void 二个方法(int i)
{
	Console.WriteLine("你调用了此方法,并传入了参数"+i);
}

调用方式:

a.二个方法(1);

在方法的括号里面声明此方法的参数。参数声明和声明变量一样,但是不能赋值
可以使用多个参数,使用逗号隔开。每个参数都要变量类型和变量名称。即使类型相同也不能省略

public void 三个方法(int a,int b,int c)
{
}

调用时必须在方法的括号里按顺序写所有参数类型的值。
如果不匹配则不能判断你使用的是这个方法。


专有名词

在声明方法时写的参数,称为形参(走个形式),这个阶段只是编写阶段声明变量
在调用方法时传入的值称为实参(实际的值),这个阶段在运行阶段,是实际的值。

方法后面跟这个参数全部放在一起称为这个方法的参数列表
以上示例中
一个方法的参数列表为:空
二个方法的参数列表为:int
三个方法的参数列表为:int,int,int

参数列表是有序的,组成和顺序都相同的参数列表才称为相同的参数列表。


方法的重载

方法的定义是方法名和参数列表一起定义的。
这意味着:方法可以同名
两个同名的方法便称为方法的重载

这个方法有8个重载(这个方法有8种形态)
这个方法具有的另一个重载(这个方法有另一种形态)
可以使用这个方法的重载(可以使用这个方法一个不同的形态)

方法的歧义

因为数据类型具有一定的兼容性,并且传入实参的时候不需要显式注明类型。
因此调用重载时可能和希望的方式有出入

	public void(int i)
	{
		Console.WriteLine("int");
	}
	public void(long i)
	{
		Console.WriteLine("long");
	}
	public void(double i)
	{
		Console.WriteLine("double");
	}

在这里插入图片描述

编译器会自动使用它认为最合适的方法,
你可以显式添加强制类型转换,改变编译器的看法
在这里插入图片描述

相关文章