程序员C#学习之旅

C#—参数传递之 Ref 和 Out

2019-03-18  本文已影响2人  你这样我很吃惊

ref 和 out 声明的参数

1.两者都是按地址传递的,使用后都将改变原来参数的数值。

2.ref 可以把参数的数值传递进函数

3.out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。

4.这个就是两个的区别:ref是有进有出,out是只出不进。


参数传递:ref

概念:

1.ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。

2. 若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。 即 方法参数 中必须声明 ref 修饰

代码:

static void Main(string[] args){

          int _ref = 5;

        OldRef(ref _ref);

        Console.WriteLine(_ref);

public static void OldRef(ref int i){

          i = 44;

如此 以上的C#代码 将会打印出值: 44,因为通过ref传递的参数将会改变其本事的值 ,因此为 有进有出,修改本身。

参数传递:out

概念:

1.out 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。

2.在Out传入时 会将参数本身清空,因此 此参数无需初始化,out在传入时必须现在函数内初始化才可调用

static void Main(string[] args){

        int _out;

         OldOut(out _out); //无需使用初始化

         Console.WriteLine(_out);

public static void OldOut(out int i){

          //  Console.WriteLine(i); //如果直接打印将被报空值 

         i = 55; //此时对传入的out进行赋值

如此 以上的C#代码 将会打印出值: 55,因为通过out传递的参数将会改变其本事的值 ,当然在函数内必须率先对其进行赋值才可。

因此为  无进有出,修改本身。  

上一篇 下一篇

猜你喜欢

热点阅读