首页 > 开发 > 综合 > 正文

C#中Ref参数使用之我见

2024-07-21 02:27:28
字体:
来源:转载
供稿:网友
市面上的书中有关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#的书将上面的情况加以说明。
谢谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表