Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
MemberInfo.DeclaringType, propriété
Obtient la classe qui déclare ce membre.
Assembly : mscorlib (dans mscorlib.dll)
La propriété DeclaringType récupère une référence à l'objet Type pour le type qui déclare ce membre. Un membre d'un type est soit déclaré par ce type, soit hérité d'un type de base. Par conséquent, l'objet Type retourné par la propriété DeclaringType ne peut pas être identique à l'objet Type utilisé pour obtenir l'objet MemberInfo actuel.
-
Si l'objet Type à partir duquel cet objet MemberInfo a été obtenu n'a pas déclaré ce membre, la propriété DeclaringType représente un de ses types de base.
-
Si l'objet MemberInfo est un membre global (autrement dit, s'il a été obtenu à partir de la méthode Module.GetMethods qui retourne des méthodes globales sur un module), la valeur du DeclaringType retourné sera null.
L'exemple suivant illustre la manière dont DeclaringType fonctionne avec les classes et les interfaces et récupère les noms des membres de la classe System.IO.BufferedStream, de même que la classe dans laquelle ces membres sont déclarés. Notez également lorsque B substitue la méthode virtuelle M de A, il redéfinit (ou déclare de nouveau) cette méthode. Par conséquent, MethodInfo de la méthode M de B indique le type de déclaration comme étant B plutôt que A, même si cette méthode a été déclarée dans A initialement.
using System; using System.IO; using System.Reflection; namespace MyNamespace1 { interface i { int MyVar() ; }; // DeclaringType for MyVar is i. class A : i { public int MyVar() { return 0; } }; // DeclaringType for MyVar is A. class B : A { new int MyVar() { return 0; } }; // DeclaringType for MyVar is B. class C : A { }; // DeclaringType for MyVar is A. } namespace MyNamespace2 { class Mymemberinfo { public static void Main(string[] args) { Console.WriteLine ("\nReflection.MemberInfo"); //Get the Type and MemberInfo. Type MyType =Type.GetType("System.IO.BufferedStream"); MemberInfo[] Mymemberinfoarray = MyType.GetMembers(); //Get and display the DeclaringType method. Console.WriteLine("\nThere are {0} members in {1}.", Mymemberinfoarray.Length, MyType.FullName); foreach (MemberInfo Mymemberinfo in Mymemberinfoarray) { Console.WriteLine("Declaring type of {0} is {1}.", Mymemberinfo.Name, Mymemberinfo.DeclaringType); } } } } namespace MyNamespace3 { class A { virtual public void M () {} } class B: A { override public void M () {} } }
Remarque
|
|---|
|
DeclaringType retourne uniquement les noms des membres et celui de leurs types de déclarations. Pour retourner les noms des membres avec leurs prototypes, appelez MemberInfo.ToString. |
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque