2016-06-25 8 views
0

최적화 목표는 어떻게 개선 될까요?집합 접근 자의 C# 값 확인

public SpeedGraphModel SpeedGraphModel 
{ 
    get { return _speedGraphModel; } 
    set { 
      if (_speedGraphModel == value) 
       return; 

      _speedGraphModel = value; 
     } 
} 

또는

public SpeedGraphModel SpeedGraphModel 
{ 
    get { return _speedGraphModel; } 
    set { _speedGraphModel = value; } 
} 

내가 string 유형을 확인하지 않고 더 좋을 것에 대해 생각하지만, 다른 유형?

+4

실제로 이것이 차이를 실현한다고 생각하십니까? – Steve

+5

[조기 최적화] (http://c2.com/cgi/wiki?PrematureOptimization)에 희생 당하지 않으시겠습니까? – rene

+0

왜 이런 코드가 필요한가요? 이것은 가독성을 저해합니다. 당신은'public SpeedGraphModel SpeedGraphModel {get; 세트; }'. 이것이 현대의 하드웨어와 성능면에서 차이를 가져올 가능성은 거의 없습니다. – QuantumHive

답변

0

변수 값을 설정하는 대신 다른 조건 검사를 추가하면 같음에도 불구하고 중복됩니다.

가장 좋은 경우 동등한 경우 1 작업 (조건)을 만듭니다.
최악의 경우은 2 가지 작업을 수행합니다 (조건 + 할당).

변수를 설정하는 대신과 상관없이. => 1 작업.

0

이러한 확인은 일반적으로 설정 값에 대한 논리를 호출 할 때 사용됩니다 (설정하는 것뿐만 아니라). 예를 들어, 데스크톱 (WPF/WinForms) 또는 모바일 (Xamarin)에서는 고유 한 속성을 구현할 수 있습니다.이 속성은 종속성 속성과 비슷하며 OnPropertyChanged() 메서드를 호출합니다. 업데이트 후보기 항목을 새로 고치는 데 사용할 수 있습니다. 이렇게하면 항목에 동일한 값을 설정 한 다음 OnPropertyChanged()으로 전화를 걸어도 성능에 영향을 줄 수있는보기의 일부가 업데이트되므로 원하는대로 변경할 수 있습니다. 여기에서 추가 확인을하십시오.

논리가없는 개인 필드 내에서만 값을 설정하는 일반적인 속성이있는 경우 중복으로 추가 검사가 필요하지 않으므로 성능이 향상되지 않습니다.