Share via


Acessar membros padrão

Qualquer tipo pode ter um membro padrão, que é um membro que é invocado quando nenhum nome de membro é determinado.O exemplo a seguir chama o membro padrão de Class1, e o valor retornado é atribuído ao i.

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

Membros padrão são marcados com o System.Reflection.DefaultMemberAttribute. O exemplo a seguir mostra como recuperar o membro padrão Recuperando o atributo personalizado para o membro padrão.

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);

Pode ser mais simples usar Type.GetDefaultMembers, que, exatamente o mesmo resultado. No entanto, GetDefaultMembers lança um InvalidOperationException Se houver mais de um membro de um padrão definido no tipo. O exemplo de código a seguir mostra a sintaxe para GetDefaultMembers.

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

Você pode chamar membros padrão chamando Type.InvokeMember com String.Empty("") sistema autônomo o nome do membro. InvokeMember recupera o DefaultMemberAttribute do tipo e invoca-lo.

Consulte também

Conceitos

Exibindo informações de tipo

Referência

DefaultMemberAttribute

Type.GetDefaultMembers