首先:两者都是按地址传递的,使用后都将改变原来参数的数值。
其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,ref是有进有出,out是只出不进。
ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:
1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。
若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。
不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。
属性不是变量,不能作为 out 参数传递。
扩展资料:
当希望方法返回多个值时,声明 out方法很有用。使用 out参数的方法仍然可以将变量用作返回类型(请参见 return),但它还可以将一个或多个对象作为 out参数返回给调用方法。此示例使用 out在一个方法调用中返回三个变量。请注意,第三个参数所赋的值为 Null。这样便允许方法有选择地返回值。
ref是net的关键字,ref关键字--让参数按照引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中;也等同将值类型的数据使用引用方式传参。若要使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。ref是 Reference的缩写。
两者词性不同,释义也不同
ref是名词中文释义裁判员,out可做副词可做动词
英: [ref]美: [rɛf]n.裁判员;
例句:
The ref is placing the ball for a free kick to the visiting team.
裁判员正在安排让客队罚任意球。
out 英: [aʊt]美: [aʊt]
adv.出局; 在外,在外部; 完全,彻底; 出版;
prep.(表示来源)从; (从…里)出来; (表示不在原状态)脱离; 离去;
例句:
Two of his biggest competitors are out of the ball game.
他的两大劲敌出局了。
复数:outs
out与ref区别:
1、使用ref型参数时,传入的参数必须先被初始化,对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字,以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
4、ref传进去的参数在函数内部可以直接使用,而out不可。
5、系统对ref的限制是更少一些的。
6、若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法,ref 参数的值被传递到 ref 参数。
7、当希望方法返回多个值时,声明 out 方法非常有用;使用 out 参数的方法仍然可以返回一个值。
扩展资料:
ref和out语法区别:
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;//语法错误}
参考资料:百度百科-c#
本回答被网友采纳out与ref区别:
1、使用ref型参数时,传入的参数必须先被初始化,对out而言,必须在方法中对其完成初始化。
2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字,以满足匹配。
3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
4、ref传进去的参数在函数内部可以直接使用,而out不可。
5、系统对ref的限制是更少一些的。
6、若要使用 ref 参数,必须将参数作为 ref 参数显式传递到方法,ref 参数的值被传递到 ref 参数。
7、当希望方法返回多个值时,声明 out 方法非常有用;使用 out 参数的方法仍然可以返回一个值。
扩展资料:
out:标识一个参数值会受影响的参数,但在传入方法时,该参数无需先初始化。
ref:标识一个参数值可能会受影响的参数。
C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。
为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C++的程序员而言。对国际化的支持非常重要。C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。
参考资料:百度百科-C#
本回答被网友采纳一、两者词性不同
ref是名词中;out可做副词,可做动词
二、释义也不同
ref 英 [ref] 美 [ref] n. 裁判员
out 英 [aʊt] 美 [aʊt] adv. 出;在外;完;prep. 向外;在外面;v. 出来;暴露;驱逐;熄灭;伸出;公开…的同性恋身份
三、用法不同
out 用作副词 (adv.)
His book came out last month.
他的书上个月出版了。
2.He took out a book from the case.
他从箱子里拿出一本书。
用作名词 (n.)
The game's not over till the ref blows the whistle.
裁判吹响哨子,比赛才算结束。
2.If I had been the ref I wouldn't have given a penalty then.
如果我是裁判,那时候就不会罚犯规。
扩展资料:
英语词性
prep. = 介系词(介词);前置词,preposition的缩写
pron .= 代名词(代词),pronoun的缩写
n .= 名词,noun的缩写
v. = 动词,兼指及物动词和不及物动词,verb的缩写
conj. = 连接词 ,conjunction的缩写
s = 主词(主语)
sc = 主词补语(有两种说法,一种表示主语补语=表语,一种表示一般表语属于主语补语)
o = 受词 (宾语)
oc = 受词补语(宾语补足语)
vi. = 不及物动词,intransitive verb的缩写
vt. = 及物动词,transitive verb的缩写
aux.v = 助动词 ,auxiliary的缩写
adj. = 形容词,adjective的缩写
adv. =副词,adverb的缩写
art. = 冠词,article的缩写
num. = 数词,numeral的缩写
int. = 感叹词,interjection的缩写
u. = 不可数名词,uncountable noun的缩写
c. = 可数名词,countable noun的缩写
pl. = 复数,plural的缩写
本回答被网友采纳ref和out的区别是什么?
3、传递到ref参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化。尽管ref和out在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用ref参数,而另一个方法采用out 参数,则无法重载这两个方法。
ref和out的区别
其次:ref可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,ref是有进有出,out是只出不进。ref和out的区别在C# 中,既可以通过值也可以通过引用传递参...
ref参数和out参数是什么?有什么区别?
ref参数是引用,out参数为输出参数。
Ref 与out有什么不同?
如果两个方法的声明仅在 out 的使用方面不同,则会发生重载。不过,无法定义仅在 ref 和 out 方面不同的重载。
概括一下ref和out的各自特点,区别。
ref:将一个变量带入方法中,在方法中计算变量改变其数值再带出方法。也就是不用再返回数值类型。out:一个方法只可以返回一个数值类型,用out可以返回多个,但要在方法里为其赋值。
c# ref和out区别仅仅是参数需不需要初始化?
ref和out使用时的区别是:①:ref指定的参数在函数调用时候必须初始化,不能为空的引用。而out指定的参数在函数调用时候可以不初始化;②:out指定的参数在进入函数时会清空自己,必须在函数内部赋初值。而ref指定的参数不需要。一:ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在...
ref和out的作用于区别是什么?
ref和out都是引用地址 ref可以理解为引用传值,一个构造器或方法里含有ref参数,任何使用这个构造器或方法的地方操纵的都是同一个变量,ref所修饰的变量,也就是说。。。和你定义全局变量或者static变量差不多的[效果].out我个人感觉和ref使用差不多啊,网上有人说值传递,还说传递之前必须初始化,不...
out 与ref区别
out在方法体内必须被赋值,而ref不用!,out是向外面返值,ref即可接受也可返回值!
ref与out区别是什么?
ref 英 [ref] 美 [rɛf]n.裁判员 复数: refs out 英 [aʊt] 美 [aʊt]adv.出局;在外,在外部;完全,彻底;出版 prep.(表示来源)从;(从…里)出来;(表示不在原状态)脱离;离去 vt.使熄灭;揭露;驱逐 adj.外面的;出局的;下台的;外围的 n.不流行;出局 ...
实际开发中ref,out参数有多大作用
理论上来说,out就是多返回值,可以用返回Tuple替代,ref就是传递引用,可以用wrapper对象替代。但在特定场景,你想要好用性能高,没有值类型和这俩东西,你就做不到。