2014-01-09 3 views
1

다음과 같은 멤버 변수를 선언하면 public bool name { get; set; } 액세스 할 때 항상 성능이 저하됩니다. 맞습니까?자동 속성이 런타임 성능에 영향을 줍니까?

자주 사용되는 패턴을 볼 수 있으며 일부 고성능 응용 프로그램에서는 자주 액세스하는 속성을 추가 할 수 있습니다. 나는 맞습니까, 아니면 .NET이 무언가를 수행합니까?

+2

아니요. 다른 점이 없다. 컴파일러는 속기를 사용할 때 보조 변수를 생성합니다. –

+0

이것은 단지 문법적 인 설탕입니다. –

+0

이 스타일을 사용하면 실제로 멤버 변수가 아닌 속성이 생성됩니다. 제한된 수의 상황에서만 중요합니다. – RacerNerd

답변

12

뒷받침 필드와 사소한 접근 몸체에 대한 자동 특성. 최적화가 켜지면 JIT가 안정적으로 인라인됩니다. 성능은 필드와 동일합니다.

후회하지 않고 자동 속성 만 사용하십시오. Visual Studio에는 prop 템플릿이 있습니다. 형식을 얻으려면 prop<tab><tab>을 입력하십시오. propg은 개인 설정기를위한 것으로, 변경 불가능한 유형을 신속하게 스탬프 처리하는 데 유용합니다.

+5

최근 게시물에서 이것을 확인했습니다. 실제로 생성 된 (내 컴퓨터의 64 비트 JITer 코드) 코드는 실제로 호출을 인라인하고 백킹 필드에 직접 액세스하는 것과 동일합니다. +1. –

+0

'prop' 템플릿은 Resharper만이 아닙니다. VS (2010)에서 기본적으로 사용 가능합니다. 'private set'을 즉시 원한다면'propg'를 사용하십시오. – Styxxy

관련 문제