Cette documentation est archivée et n’est pas conservée.

Accès aux membres par défaut

Tous les types peuvent posséder un membre par défaut, lequel est un membre appelé lorsque aucun nom de membre n'est donné. L'exemple suivant appelle le membre par défaut de Class1 et la valeur retournée est assignée à i.

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

Les membres par défaut sont marqués avec System.Reflection.DefaultMemberAttribute. L'exemple suivant montre comment récupérer le membre par défaut à partir de son attribut personnalisé.

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

Il peut être plus simple d'utiliser Type.GetDefaultMembers, qui produit exactement le même résultat. Cependant, GetDefaultMembers lève InvalidOperationException si plusieurs membres par défaut sont définis sur le type. L'exemple de code suivant montre la syntaxe de GetDefaultMembers.

MemberInfo[] memInfo = t.GetDefaultMembers();

Pour appeler des membres par défaut, utilisez Type.InvokeMember avec String.Empty ("") comme nom de membre. InvokeMember récupère DefaultMemberAttribute à partir du type avant de l'appeler.

Voir aussi

Afficher: