기본 멤버 액세스

업데이트: 2007년 11월

모든 형식에 기본 멤버가 있을 수 있습니다. 기본 멤버는 멤버 이름을 지정하지 않을 경우 호출되는 멤버입니다. 다음 예제에서는 Class1의 기본 멤버가 호출되며 반환 값이 i에 대입됩니다.

Dim i As Integer
Dim c As New Class1()
i = Convert.ToInt32(c)

기본 멤버는 System.Reflection.DefaultMemberAttribute로 표시됩니다. 다음 예제에서는 기본 멤버의 사용자 지정 특성을 검색함으로써 기본 멤버를 검색하는 방법을 보여 줍니다.

Dim t As Type = GetType(DefaultMemberAttribute)
Dim defMem As DefaultMemberAttribute = CType(Attribute.GetCustomAttribute([Assembly].GetAssembly(t), t), DefaultMemberAttribute)
Dim memInfo As MemberInfo() = t.GetMember(defMem.MemberName)
Type t = typeof(DefaultMemberAttribute);
DefaultMemberAttribute defMem = (DefaultMemberAttribute)Attribute.GetCustomAttribute(Assembly.GetAssembly(t), t);
MemberInfo[] memInfo = t.GetMember(defMem.MemberName);

동일한 결과를 생성하는 Type.GetDefaultMembers를 사용하는 것이 더 간단할 수도 있습니다. 그러나 GetDefaultMembers는 형식에 정의된 기본 멤버가 둘 이상 있으면 InvalidOperationException을 throw합니다. 다음 코드 예제에서는 GetDefaultMembers의 구문을 보여 줍니다.

Dim memInfo As MemberInfo() = t.GetDefaultMembers()
MemberInfo[] memInfo = t.GetDefaultMembers();

멤버 이름이 String.Empty("")인 Type.InvokeMember를 호출하면 기본 멤버를 호출할 수 있습니다. InvokeMember는 형식에서 DefaultMemberAttribute를 검색한 다음 이를 호출합니다.

참고 항목

개념

형식 정보 보기

참조

DefaultMemberAttribute

Type.GetDefaultMembers