C#中Ref参数使用之我见

王朝c#·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

市面上的书中有关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<arr.Length;i++)

arr[i]=0;

}

public static void Main()

{

int [] aar = {3,4,5,7,2,6,1};

for(int i=0;i<aar.Length;i++)

Console.WriteLine(">>>"+aar[i].ToString());

ChageValue(aar); // 这里没有使用REF 参数.

for(int i=0;i<aar.Length;i++)

Console.WriteLine("<<<"+aar[i].ToString());

}

从结果中可以看出,数组本身已经改变了,因此不仅仅用REF的形式可以改变参数的值,而这种情况在一般书中都没有介绍,希望新的关于介绍C#的书将上面的情况加以说明。

谢谢。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航