欢迎光临
我的个人博客网站

C# 值参数/引用参数/输出参数

值参数

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

C# 值参数/引用参数/输出参数

引用参数

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

C# 值参数/引用参数/输出参数

输出参数

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

 

C# 值参数/引用参数/输出参数

 

赞(0) 打赏
未经允许不得转载:张拓的天空 » C# 值参数/引用参数/输出参数
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏