当前位置: 代码迷 >> ASP.NET >> ref 跟 out 的区别
  详细解决方案

ref 跟 out 的区别

热度:4489   发布时间:2013-02-25 00:00:00.0
ref 和 out 的区别
请问这3个有什么不同
public void text(string str){}
public void text(ref string str){}
public void text(out string str){}

------解决方案--------------------------------------------------------
ref 和 out 关键字都是使参数按引用传递。
ref参数使用前必须初始化,out参数则可以不初始化。
out参数在函数中必须得到赋值,ref则没有这种要求。


比如有如下代码:
C# code
public void text1(string str){}public void text2(ref string str){}public void text3(out string str){}public void test(){     string myString;     text1(myString);     text2(ref myString);     text3(out myString);}1、调用text1方法随便怎么都可以调用,在text1方法中改变str的值不会影响test方法中myString的值。2、而调用text2方法,则必须要先给myString赋值才能掉用,否则无法编译通过。在text2方法中改变str的值,test方法中myString也会同时被改变。3、调用text3则可以不给myString赋值,但是在text3方法中必须为str赋值,否则无法编译通过。同时,在text3方法中改变str的值,test方法中的myString的值也会被改变。
  相关解决方案