string
이 아닌 경우 무엇을 제안 하시겠습니까? 과 같이 정적 유형 지정을 지원하는 모든 유형 (, TypeDescriptionProvider
또는 ITypedList
중 하나를 통해 다른 많은 유형이 없음)과 같이 바인딩 목적으로 사용자 정의 속성 모델을 노출하기 때문에 PropertyInfo
일 수 없습니다.그것은 이PropertyInfo
경우에도
, 또는 그것이 PropertyDescriptor
경우에도,이에 비교 할 수없는하십시오 : 그것은 참조 조회를 얻기 위해 작업을 많이 걸릴 것 B : 당신은 심지어 당신이 볼 때마다 똑같은 물체를 되찾기 위해 (특히 PropertyDescriptor
) 보장받지 못합니다.
그렇다면 어쨌든이라는 이름 (string
) 을 비교하게 될 것입니다.
string
을 사용하면이 이벤트를 발생시키는 데 드는 비용이 거의 들지 않으며 비교하기가 매우 저렴합니다. 대부분의 속성 이름이 매우 짧고 거의 모든 문자가 30 문자 미만이므로 문자열 비교는 매우 빠릅니다. 그것은 놀라 울 정도로 빠르며 병목 현상이 아닙니다. 대부분의 경우 "지금 변경해야 할 작업"은 로터을이 문자열 비교 시간보다 더 오래 걸릴 것입니다.
나는 내 앞에 구현을 가지고 있지만하지 않는 나는 것 문자열 평등 검사가 기본적으로 희망 :
- 동일한 참조? true를 반환하십시오.
- 다른 길이? false를 반환
- 비교 char-by-char; 첫번째 차이에서 false를 반환
- 반환 사실 모든 속성 이름이 아니라면
그래서 그것도 문제가되지 않습니다 : 같은 길이, B :
기본적으로 매우 중요한 길이 : 그것에 대해 걱정하지 마십시오.
인턴받은 문자열은 어떻게됩니까? –
항상 그렇지는 않습니다 : http://blogs.msdn.com/b/ericlippert/archive/2009/09/28/string-interning-and-string-empty.aspx –
@HarisHasan 참조는'String으로 명시 적으로 검색 될 수 있습니다. 인턴 '. –