美文网首页
out, ref关键字

out, ref关键字

作者: yz_wang | 来源:发表于2019-05-07 13:53 被阅读0次

功能

在C#中,ref与out是很特殊的两个关键字。使用它们,可以使参数按照引用来传递。

总的来说,通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out).

有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指向变量在内存中的位置.当引用被修改时,修改的是内存中的值,因此变量的值可以将被修改.当我们调用一个含有引用参数的方法时,方法中的参数将指向被传递给方法的相应变量,因此,我们会明白,为什么当修改参数变量的修改也将导致原来变量的值.

通俗的从功能上来讲,使用这两个关键字,可以使一个方法返回多个参数。

ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。

out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。


区别

  1. out 参数在进入方法(函数)时后清空自己,使自己变成一个干净的参数,也因为这个原因必须在方法返回之前或再使用out参数前为 out 参数赋值(只有地址没有值的参数是不能被.net接受的);而ref参数是不需要在被调用方法使用前先赋值的,甚至也可以被调用方法中不改变ref参数的值,这都不会引起编译错误。
  2. ref参数在使用前必需初始化,而out不需要。
  3. out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

相关文章

  • 235 ref和out关键字

    ref关键字 使用ref关键字可以将值类型变量按照引用方式传递 out关键字 使用out关键字可以让方法有多个返回...

  • ref关键字和out关键字

    1.怎么用: ref关键字主要用来传递参数,而out关键字用来返回结果 相同点:ref和out都是按地址传递(值类...

  • out, ref关键字

    功能 在C#中,ref与out是很特殊的两个关键字。使用它们,可以使参数按照引用来传递。 总的来说,通常我们向方法...

  • Lession05类和对象的高级应用

    访问修饰符 值类型和引用类型 类的静态成员 ref关键字和out关键字 方法的重载

  • ref与out关键字

    值类型,作为引用类型操作关键字 ref关键字 :(修饰属性) 1.参数声明需要使用out进行修饰,调用方法传入的...

  • 细讲C#中的ref与out的区别

    很多时候参数按地址传递时加有OUT关键字,到底他和REF有什么区别呢? 好,我们直奔主题,ref是传递参数的地址,...

  • C# out 和ref 关键字

    out关键字,传递参数值可以不赋予默认值。 ref关键字,传递参数默认必须进行赋值 ,进行赋值后,输出结果为2 r...

  • C# ref & out

    1. What is ref & out ? 参数传递时按引用传递参数 2.Why need ref & out ...

  • Out And Ref

    在C#中Out和Ref使用方法基本一样。Out使用时其实参数可以不赋值,在使用时在实参数前面加上Out,如下:Ou...

  • Ref、Out、In

    Ref ??? 传引用??? Out(a new feature of C# 7) string input1 =...

网友评论

      本文标题:out, ref关键字

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