2016-09-19 7 views
0

데이터 테이블을 읽었는데 Reference 유형이고 ref 키워드를 사용하면 어떤 차이가 있습니까? 성능면에서 두 가지 접근 방식이 같습니까?Ref 키워드가 DataTable에 유용합니까

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)대 (2)가?

답변

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 
} 

그래서 성능에 관한 것이 아닙니다.