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<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#的书将上面的情况加以说明。
谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值