Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

MemberInfo.DeclaringType propriété

 

Date de publication : novembre 2016

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

Le Type objet de la classe qui déclare ce membre.

Le DeclaringType propriété récupère une référence à la Type objet pour le type qui déclare ce membre. Un membre d’un type est déclaré par le type ou hérité d’un type de base, afin que la Type objet retourné par la DeclaringType propriété ne peut pas être identique à la Type objet utilisé pour obtenir l’actuel MemberInfo objet.

  • Si le Type objet à partir duquel ce MemberInfo objet a été obtenu n’a pas déclaré ce membre, le DeclaringType propriété représente un de ses types de base.

  • Si le MemberInfo objet est un membre global (autrement dit, si elles ont été obtenues à partir de la Module.GetMethods méthode qui retourne des méthodes globales sur un module), retourné DeclaringType sera null.

L’exemple suivant définit une interface, IValue, avec un seul membre, GetValue. Il définit également les quatre classes : A, une classe de base qui implémente le IValue interface ; B, qui hérite de A et masque son implémentation de GetValue à partir de l’implémentation de la classe de base ; C, qui hérite simplement A; et D, qui hérite de A et remplace son GetValue (méthode). L’exemple récupère ensuite une MemberInfo objet pour chaque membre du type (y compris les membres hérités de Object) et affiche la valeur de son DeclaringType propriété.

using System;
using System.Reflection;

interface IValue 
{
   int GetValue() ;
};

class A : IValue 
{
   public virtual int GetValue() 
   { 
      return 0; 
   }
};

class B : A 
{
   public new int GetValue() 
   { 
      return 0; 
   }
};

class C : A 
{ };

class D : A
{
   public override int GetValue()
   {
      return 0;
   }
}

public class Example
{
   public static void Main()
   {
      // Get members of IValue interface.
      ShowMembersAndDeclaringTypes(typeof(IValue));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(A));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(B));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(C));
      Console.WriteLine();
      ShowMembersAndDeclaringTypes(typeof(D));
      Console.WriteLine();
   }

   private static void ShowMembersAndDeclaringTypes(Type t)
   {
      MemberInfo[] members = t.GetMembers();
      Console.WriteLine("{0} Members: ", t.Name);
      foreach (var member in members)
         Console.WriteLine("   {0}, Declaring type: {1}", 
                           member.Name, member.DeclaringType.Name); 
   }
}
// The example displays the following output:
//       IValue Members:
//          GetValue, Declaring type: IValue
//       
//       A Members:
//          GetValue, Declaring type: A
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: A
//       
//       B Members:
//          GetValue, Declaring type: B
//          GetValue, Declaring type: A
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: B
//       
//       C Members:
//          GetValue, Declaring type: A
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: C
//       
//       D Members:
//          GetValue, Declaring type: D
//          ToString, Declaring type: Object
//          Equals, Declaring type: Object
//          GetHashCode, Declaring type: Object
//          GetType, Declaring type: Object
//          .ctor, Declaring type: D

Notez que le type de déclaration A.GetValue est A, qui B inclut deux GetValue méthodes, déclaré par A et un autre par B, et que le type de déclaration D.GetValue est D.

System_CAPS_noteRemarque

DeclaringType retourne uniquement les noms des membres et les noms de leurs types de déclaration. Pour retourner le membre noms avec leurs prototypes, appelez MemberInfo.ToString.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: