C# (또는 VB .NET)에서 컴파일러는 속성 액세스를 최적화하려고합니까? 예 :.,C# 속성 액세스 최적화
public ViewClass View
{
get
{
...
Something is computed here
....
}
}
if (View != null)
View.Something = SomethingElse;
내가 컴파일러는 어떻게 든 View
두 액세스 간의 일정하게 유지되는 것을 감지 할 수 있다면, 그것은 두 배 값을 계산 자제 할 수있는 상상에 맡기겠습니다. 이러한 종류의 최적화가 수행됩니까?
집중적 인 계산이있는 View
이있는 경우 함수 (GetView()
)로 리팩토링해야합니다. 내 특별한 경우에 View
에는 특정 유형의 요소를 찾는 시각적 트리를 오르는 작업이 포함됩니다.
관련 항목 : (Microsoft) C# 컴파일러의 작동에 대한 참조는 무엇입니까?
컴파일러는 값이 변경되지 않았다는 것을 어떻게 알 수 있습니까? 클래스가 멀티 스레드 코드에서 사용되면 어떻게 될까요? – tster
@tster : 아마도 컴파일러에 수정 구슬이 있습니다. –