函数参数中的ref关键字

     突软想到一个问题,以前给函数传递参数时,因为都是引用类型的数据所以没有发现加于不加ref关键字有何区别。如果传递的是值类型参数的话,应该效果就不一样了。
    在一个参数数据量特别大的时候,比如byte[1024000]而且调用这个函数特别频繁的时候,是不是加ref关键字可以提升程序的性能呢?这个我还没有测试。现将这个想法在此记录。
void SaveData(byte[] src)
{
}

void SaveData(ref byte[] src)

今天写了一个小测试程序。结果是加了ref关键字以后速度反而降低了。具体原因我就不去研究了,知道结果就可以了。
        /// <summary>
        
/// 应用程序的主入口点。
        
/// </summary>

        [STAThread]
        
static void Main(string[] args)
        
{
            
byte[] a = new byte[102400000];
            
int startTick, endTick;
            
            startTick 
= System.Environment.TickCount;
            Console.WriteLine(a);

            
for(int i=0; i<100000000; i++)
                SetA(
ref a);

            endTick 
= System.Environment.TickCount;
            Console.WriteLine(endTick 
- startTick);
            Console.Read();
        }


        
static private void SetA(ref byte[] a)
        
{
            a[
0= 3;
        }

posted @ 2005-01-22 00:00  浮云  阅读(695)  评论(0)    收藏  举报