`

Ref与Out的区别

阅读更多
ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递。

对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别。

总结起来,他们有如下语法区别:



1、ref传进去的参数必须在调用前初始化,out不必,即:
int i;
SomeMethod( ref i );//语法错误
SomeMethod( out i );//通过



2、ref传进去的参数在函数内部可以直接使用,而out不可:
public void SomeMethod(ref int i)
{
   int j=i;//通过
   //...
}
public void SomeMethod(out int i)
{
   int j=i;//语法错误

}


3、ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值。

ref在参数传递之前必须初始化;而out则在传递前不必初始化,且在 ... 值类型与引用类型之间的转换过程称为装箱与拆箱。


总结:
应该说,系统对ref的限制是更少一些的。out虽然不要求在调用前一定要初始化,但是其值在函数内部是不可见的,也就是不能使用通过out传进来的值,并且一定要在函数内赋一个值。或者说函数承担初始化这个变量的责任。

1.都是地址传值的方式。
2.ref是有进有出,out是只出不进。
3.ref在返回时不需要赋值,out在返回前必须赋值。
分享到:
评论

相关推荐

    ref out 的区别

    ref实际开发中用的相对较少 它必须在使用前赋值。out用得较多,在方法体内赋值并且可以返回多个结果。

    C_中out和ref的区别

    C_中out和ref的区别,这是基础的C#知识点!

    out和ref的区别

    out和ref的区别 out和ref的区别

    C#中关键字ref与out的区别

    C#中关键字ref与out的区别:可以在程序中很好的使用ref和out关键字

    C#中ref和out的区别浅析

    因此,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢? MSDN:  ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该...

    ref和out传值

    ref和out传值,ref与out的区别,传值的方式,详解都在里面。欢迎大家下载,以及评论

    C#中ref,out和params有什么区别

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

    ref和out的区别

    本文档主要叙述了ref和out的区别,同时还有实例供理解

    C#中out与ref的区别实例解析

    本文实例讲述了C#中Out与Ref的区别,可以加深C#程序设计人员对Out和Ref用法的理解,具体分析如下: 一、区别分析: Out和Ref作为参数传递到方法体中,所传递的都是引用地址,两者在操作上本身没有区别。 但Out传递到...

    ref与out之间的区别深入解析

    总结起来,他们有如下语法区别: 1、ref传进去的参数必须在调用前初始化,out不必,即: 代码如下:int i;SomeMethod( ref i );//语法错误SomeMethod( out i );//通过2、ref传进去的参数在函数内部可以直接使用,而...

    ref和out的作用(txt)

    ref和out的作用 方法参数上的 ref 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

    C# ref和out的区别

    在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值...若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。

    in.ref.out C#传值调用与引用调用

    in.ref.out C#传值调用与引用调用

    out和ref传值的区别

    out和ref传值在方法中传值的区别

    Ref和out关键字的区别

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

    Unity3D教程:ref 、out、params参数区别1

    // str is now “changed” } } 方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。ref可以把参数的数值传递

    Ref和Out参数的例子

    关于一个Ref和Out参数的例子,更易理解Ref和Out参数

    (搜集整理的)C_中ref和out用法

    该文档详细介绍了在c#中的引用类型ref和out的用法,

    C#中ref与out语法的使用

    C#中ref与out语法的使用

Global site tag (gtag.js) - Google Analytics