2010-08-24 2 views
3
나는 종종 유지 보수 코드

이 표현을하지 무엇 [B] C#을

Global["Name"] 

이 무엇을 상징 하는가에서이 표현을 보았다

에서 대표? Global.Name을 사용했지만 결코 Global["Name"]을 사용 했습니까?

이 유형의 표현식을 사용하는 장소가 있습니까?

답변

3

예 : 키/값 쌍을 포함하는 사전 및 모음을 찾을 때 사용됩니다.

var peopleAges = new System.Collections.Generic.Dictionary<string, int>(); 
peopleAges["fred"] = 21; 
peopleAges["emma"] = 18; 

var fredAge = peopleAges["fred"]; // returns 21 
8

indexer이라고합니다. 이 경우 Global은 아마도 일종의 사전 또는 해시 테이블 일 것입니다. "Name"은 해당 사전의 특정 항목에 액세스하기위한 키입니다.

0

이것은 기본 속성이라고하는 C#에서 허용되는 짧은 손의 형식입니다. 클래스에 DefaultMemberAttribute가 있으면 C#으로 설정하여 해당 속성에 지정된 속성의 이름을 생략 할 수 있습니다.

+0

아니요. 인덱서에만 사용되며 기본 멤버로 정의 된 경우에도 속성을 생략 할 수 없습니다. –

+0

http://msdn.microsoft.com/en-us/library/system.reflection.defaultmemberattribute "속성에 인수가있는 경우 인덱서 (속성이 Visual Basic의 기본 인덱싱 된 속성)로 가져오고 속성의 이름 또는 접근 자 중 하나가 DefaultMemberAttribute에 지정된 이름과 일치합니다. " C#에서는이 속성을 투명하게 처리하므로 특성을 정의 할 필요가 없습니다. 먼 옛날에 VB.NET을 사용했기 때문에 기본 속성이라고했습니다. –

관련 문제