C#基础_关键字out、ref(十二)

out、 ref 关键字的作用:

  一个函数中,使用out 和 ref 作为形参的关键字,那么在函数体中只要修改过这个形参,之前调用这个函数
 时赋给对应的形参的也会改变,原因: 使用out ref修饰的形参是引用类型,而不是值类型也就是说他们所存储的是地址而不是值类型。值类型变成了引用类型。

out、ref关键字区别:

  out 关键字:1.out表示多余返回值。

        2.out修饰的变量,方法内部必须赋值

            3.out修饰的参数,传入变量,可以是没有赋值的,因为在方法中必须赋值

           4.使用情景:当一个方法中需要多个返回值,如果是相同类型也可以用数组来做,如果是不同类         型的情况,需要out

   ref关键字: 1. ref修饰参数,方法内部可以什么也不做,可以不去赋值

        2.ref 参数,在传值前,必须是赋值过的,和out相反

      总结:out只用来将值从方法中传出,不管传入的什么值,out都会重新赋值,

          ref修饰,需要初始值,方法中可以赋值也可不赋值

注意:调用out,ref修饰的参数的时候,传入实际参数的时候,前边也要加上out 或者ref

示例:交换两个数

 1    static void Main(string[] args)
 2         {
 3 
 4             int num1 = 10;  //要先赋值
 5             int num2 = 20;
 6             Console.WriteLine("num1 = {0},num2 = {1}",num1,num2);
 7             Change(ref num1,ref num2);
 8             Console.WriteLine("num1 = {0},num2 = {1}", num1, num2);
 9             Console.ReadKey();
10         }
11 
12 
13         static void Change(ref int a, ref int b)
14         {
15             int temp = a;
16             a = b;
17             b = temp;
18         }

out示例:

 1         static void Main(string[] args)
 2         {
 3             int num1 ;
 4             Test( out num1);  //out 修饰, num1可以不赋值
 5             Console.WriteLine("num1 = {0}",num1);
 6         }
 7 
 8 
 9 
10         public static void Test(out int a)
11         {
12             a = 10;
13         }

猜你喜欢

转载自www.cnblogs.com/CeasarH/p/9165382.html