美文网首页程序员C#学习之旅
C#—参数传递之 Ref 和 Out

C#—参数传递之 Ref 和 Out

作者: 你这样我很吃惊 | 来源:发表于2019-03-18 23:11 被阅读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传递的参数将会改变其本事的值 ,当然在函数内必须率先对其进行赋值才可。

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

    相关文章

      网友评论

        本文标题:C#—参数传递之 Ref 和 Out

        本文链接:https://www.haomeiwen.com/subject/lyiimqtx.html