值参数

1、在栈中为形参分配空间

2、复制实参到形参

 1       public class Person
 2       {
 3           public int age = 10;
 4       }
 5          static void Main(string[] args)
 6         {
 7             int a2= 10;
 8             Person a1= new Person();
 9 
10             Console.WriteLine(a1.age + "--" + a2);
11             SetParam(a1, a2);
12             Console.WriteLine(a1.age + "--" + a2);
13             Console.ReadLine();
14         }
15         static void SetParam(Person f1, int f2)
16         {
17             f1.age = f1.age + 5;
18             f2 = f2 + 5;
19         }     

 

上面的输出结果是

10--5

15--5

引用参数

1、使用引用参数时,必须在方法的声明和调用中都使用ref修饰符。

2、实参必须是变量,在用作实参前必须被赋值,如果是引用类型的变量,可以赋值为一个引用或null值。

3、不在栈中为形参分配新的内存。

4、形参名称相当于实参变量的别名,引用与实参相同的内存位置。

 1         public class Person
 2         {
 3             public int age = 10;
 4         }
 5         static void Main(string[] args)
 6         {
 7             int a2 = 5;
 8             Person a1 = new Person();
 9 
10             Console.WriteLine(a1.age + "--" + a2);
11             SetParam(ref a1,ref  a2);
12             Console.WriteLine(a1.age + "--" + a2);
13       
14             Console.ReadLine();
15 
16 
17         }
18 
19         static void SetParam(ref Person f1,ref int f2)
20         {
21             f1.age = f1.age + 5;
22             f2 = f2 + 5;
23         }

上面的输出结果是

10--5

15--10

输出参数

1、必须在声明的调用中都是用修饰符。输出参数的修饰符是out而不是ref。

2、实参不许是变量,不能是其他表达式类型。

3、在方法内部,输出参数在被读取之前必须被赋值。这意味着参数的初始值是无关的,而且没有必要在方法调用前为实参赋值。

4、每个输出参数在方法返回之前必须被赋值

 1         public class Person
 2         {
 3             public int age = 10;
 4         }
 5         static void Main(string[] args)
 6         {
 7             Person a1 = null;
 8             int a2;
 9 
10             OutParam(out a1,out  a2);
11             Console.WriteLine(a1.age + "--" + a2);
12             Console.ReadLine();
13         }
14 
15         static void OutParam(out Person f1, out int f2)
16         {
17             f1 = new Person();
18             f1.age = 25;
19             f2 = 15;
20         }

 

上面的输出结果是

25--15

 

 

posted on 2020-10-25 23:33  江湖小虾米L  阅读(427)  评论(0编辑  收藏  举报