Ref关键字对DataTable有用吗?

时间:2016-09-19 02:14:34

标签: asp.net datatable pass-by-reference reference-type

我读的DataTable属于Reference类型,那么使用ref关键字会有什么不同吗?两种方法在性能方面是否相同?

(1)

public int CalculateValues(DataTable dt)
{
    int output = 0;
    foreach(DataRow row in dt.Rows)
    {
          //CalculateValues
    }
    return output;
}

(2)

public int CalculateValues(ref DataTable dt)
{
    int output = 0;
    foreach(DataRow row in dt.Rows)
    {
          //CalculateValues
    }
    return output;
}

(1) vs (2)

1 个答案:

答案 0 :(得分:0)

当您将值类型传递给方法时,它会复制您的变量,但是当您传递引用类型时,它会复制指针值。 这是一个例子。

public void Change(ReferenceType val)
{
    val = new ReferenceType();
}

public void ChangeRef(ref ReferenceType val)
{
    val = new ReferenceType();
}

void SomeFunction() 
{
    var variable = new ReferenceType();
    var tmp = variable;
    Change(variable); // variable not changed
    Console.WriteLine(variable == tmp); // will print TRUE

    ChangeRef(ref variable); // variable changed
    Console.WriteLine(variable == tmp); // will print FALSE
}

所以,它根本不是关于性能的。