C#中Ref参数使用之我见

原创 2005年09月23日 13:26:00

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

相关文章推荐

C# 下ref和out 参数使用

[csharp]  using System;  using System.Collections.Generic;  using System.Text;    namespace CSh...

在 C# 异步方法中使用 out/ref 参数机制

介绍几种方法,处理 .NET异步方法需要多个返回值的问题。

C#中ref和out参数使用时需要注意的问题

C#方法中的ref和out      ref        通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响...

“用友软件总账参数之我见”.pdf

  • 2011年11月16日 14:55
  • 178KB
  • 下载

C#返回多个参数 ref及out

out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如...

[C#]浅析ref、out参数

转载:http://www.cnblogs.com/vd630/p/4601919.html#top  转载:http://www.cnblogs.com/vd630/p/4601919.h...

C# ref参数

ref参数功能:ref关键字使用参数按引用进行传递,当控制权传递回调用方法时,在方法中对参数所做的任何改变都将直接反映在该变量中 ref参数使用时需注意:     1.ref和ou...

c# 参数 params ,ref ,out

1.params :传递多个参数,在通常在不确定参数个数的情况下使用,而且可以不限定参数类型。 using System; using System.Collections.Generic; usi...

C#参数传递时到底发生了什么(ref)

ref参数 迫使值参数通过引用传送给方法。专指值类型对象。 使用前后对比如下: 使用ref前 static void Main(string[] args) {     int i = 1...
  • F7ANTY
  • F7ANTY
  • 2012年02月24日 21:10
  • 396

浅谈C#中的ref和out参数

很多初学者(甚至是工作一定时间的开发人员),在遇到ref或者out参数时,总会有点“晕乎乎”或者疑惑,也不知道到底该在啥时候,啥场景下使用ref或者out参数。 本文将通过实例和说明,给大家详细讲解...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中Ref参数使用之我见
举报原因:
原因补充:

(最多只允许输入30个字)