C#中Ref参数使用之我见

市面上的书中有关REF参数的说明一般是这样的:
ref 在使用过程中会改变变量的值,且例子如下:
public static void ValueParam(string str)
{
str = "251";
}
public static void RefParam(ref string str)
{
str = "250";
}
public static void Main()
{
string str = "249";
ValueParam(str);
Console.WriteLine(" Value Param:"+str);
RefParam(ref str);
Console.WriteLine(" Ref Param:"+str);
}
结果为:
Value Param:249
Ref Param:250

但我在实践中发现: 数组参数 在不用REF修饰下值也会改变的,看下面这个例子:
public void ChageValue(int[] arr)
{
for(int i =0;i

1<arr.length;i++) []="" aar="{3,4,5,7,2,6,1};" arr[i]="0;" console.writeline("="" for(int="" i="0;i&lt;aar.Length;i++)" int="" main()="" public="" static="" void="" {="" }="">&gt;&gt;"+aar[i].ToString());   
2ChageValue(aar); // 这里没有使用REF 参数.   
3for(int i=0;i&lt;aar.Length;i++)   
4Console.WriteLine("&lt;&lt;&lt;"+aar[i].ToString());   
5}   
6从结果中可以看出,数组本身已经改变了,因此不仅仅用REF的形式可以改变参数的值,而这种情况在一般书中都没有介绍,希望新的关于介绍C#的书将上面的情况加以说明。   
7谢谢。</arr.length;i++)>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus