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
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

MemberInfo.DeclaringType, propriété

Obtient la classe qui déclare ce membre.

Espace de noms :  System.Reflection
Assembly :  mscorlib (dans mscorlib.dll)
public abstract Type DeclaringType { get; }

Valeur de propriété

Type : System.Type
Objet Type de la classe qui déclare ce membre.

Implémentations

_MemberInfo.DeclaringType

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 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.

.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :

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.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,