C#参数详解一(形参和实参)

参数详解


我们知道方法是可以被程序中很多地方调用的命名代码单元,它能把一个值返回给调用代码。返回一个值的确有用,但如果需要返回多个值呢?还有,能在方法开始执行的时候把数据传入方法也会有用。参数就是允许你做这两件事的特殊变量。

参数

形参

形参是本地变量,它声明在方法的参数列表中,而不是在方法体中。
下面的方法头展示了参数声明的语法。它声明了两个形参:一个int型,一个double型。

public void PrintSum( int x, double y )//此处的xy就是形参的声明
{
............(方法体)
}
  1. 因为形参是变量,所以他们有类型和名称,并能被写入和读取。
  2. 和方法中的其他本地变量不同,参数在方法体的外面定义并在方法开始之前初始化(但有一种类型例外,称为输出参数,下面会讲到)。
  3. 参数列表中可以由任意数目的形参声明,而且声明必须用逗号隔开。

形参在整个方法体内使用,在大部分地方就像其他本地变量一样。
例如,下面的方法声明使用两个形参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);
        }

实参

当代码调用一个方法时,形参的值必须在方法的代码开始执行之前被初始化。

  1. 用于初始化形参的表达式或变量称作为实参。
  2. 实参位于方法调用的参数列表中。
  3. 每一个实参必须与对应形参的类型相匹配,或是编译器必须能够把实参隐式转换为那个类型。
    例如,下面的代码展示了方法的调用,它有两个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版权协议,转载请附上原文出处链接和本声明。