접근 자 메서드 내에 null 병합 연산자를 두는 것이 성능에 미치는 영향이 있는지 여부를 stackoverflow에서 살펴 보았습니다. 내가 구문이 정확한지 모르겠어요,하지만 난 디버깅 할 때, 민간 객체를 설정접근 자 메서드에서 누적 병합 연산자
private Uri _Url;
public Uri Url
{
get
{
return _Url = _Url ?? new Uri(Utilities.GenerateUri());
}
}
:
private Uri _Url;
public Uri Url
{
if(_Url == null)
_Url = new Uri(Utilities.GenerateUri());
return _Url;
}
후 : 전에
.
누군가가 그 요점을 묻기 전에 우리는 가독성을 위해 글을 쓸지 (처음에는 더 읽기 쉽다), 아니면 성능을 위해 글을 쓸지에 대해 내부적으로 토론했습니다.
컴파일러의 최적화 여부는 무엇입니까 ?? 항상 수동 null 체크보다 낫다. 마이크로 최적화는 나쁜,하지만 난 당신이 실제로이 쓸 수
나는 꽤 그 두 사람이 [거의] 같은 일리노이를 생산한다고 확신한다. 불행히도, 내 환경은 저를 검사 할 가능성을주지 않습니다. 일반적으로 성능이 중요하지 않으면 항상 가독성을 고려해야합니다. – Leri
순수한 의견을 바탕으로 한 질문 - 당신이 더 좋아하는 버전을 선택하십시오. 성능에 영향이 있다고 생각되면 IL을 측정하거나 살펴보십시오. (나는 거의 0 차이가있을 것이라고 기대하지만 어떤 결과에도 내기를하지는 않을 것입니다 ... 어떤 추가 작업이 측정 가능한 영향을 끼치 지 않을 것입니다) –