我们知道方法是可以被程序中很多地方调用的命名代码单元,它能把一个值返回给调用代码。返回一个值的确有用,但如果需要返回多个值呢?还有,能在方法开始执行的时候把数据传入方法也会有用。参数就是允许你做这两件事的特殊变量。
参数
形参
形参是本地变量,它声明在方法的参数列表中,而不是在方法体中。
下面的方法头展示了参数声明的语法。它声明了两个形参:一个int型,一个double型。
public void PrintSum( int x, double y )//此处的xy就是形参的声明
{
............(方法体)
}
- 因为形参是变量,所以他们有类型和名称,并能被写入和读取。
- 和方法中的其他本地变量不同,参数在方法体的外面定义并在方法开始之前初始化(但有一种类型例外,称为输出参数,下面会讲到)。
- 参数列表中可以由任意数目的形参声明,而且声明必须用逗号隔开。
形参在整个方法体内使用,在大部分地方就像其他本地变量一样。
例如,下面的方法声明使用两个形参x和y,以及一个本地变量sum,他们都是Int型。
public static void PrintSum(int x ,int y)
{
int sum = x + y;
Console.WriteLine("Newsflash:{0}+{1} is {2}",x,y,sum);
}
实参
当代码调用一个方法时,形参的值必须在方法的代码开始执行之前被初始化。
- 用于初始化形参的表达式或变量称作为实参。
- 实参位于方法调用的参数列表中。
- 每一个实参必须与对应形参的类型相匹配,或是编译器必须能够把实参隐式转换为那个类型。
例如,下面的代码展示了方法的调用,它有两个int型的实参。
int b = 2;
PrintSum(5, b);//b为int类型的变量
当方法被调用的时候,每个实参的值都会被用于初始化相应的形参,方法体随后被执行。
注意,实参的数量必须和形参的数量一致,并且每个实参的类型也必须和所对应的形参类型一致。这种形式的参数叫做位置参数。
位置参数示例
在下面的代码中,MyClass这个类声明了两个方法:一个方法接受两个整数并且返回他们的和,另一个方法接受两个double并且返回他们的平均值。对于第二次调用,注意编译器把int值5和b隐式转换成了double类型。
class Program
{
static void Main(string[] args)
{
MyClass myClass = new MyClass();
int a = 6;
Console.WriteLine("Sum:{0}+{1} is {2}", 5, a, myClass.Sum(5,a));
Console.WriteLine("Avg:{0}+{1} is {2}", 5, a, myClass.Avg(5, a));
}
}
class MyClass
{
public int Sum (int x,int y)
{
return x + y;
}
public double Avg(double a ,double b)
{
return (a + b) / 2.0;
}
}
这段代码产生如下输出:
Sum:5+6 is 11
Avg:5+6 is 5.5
版权声明:本文为weixin_46433786原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。