Lire en anglais

Partager via


MemberInfo.DeclaringType Propriété

Définition

Obtient la classe qui déclare ce membre.

C#
public abstract Type DeclaringType { get; }
C#
public abstract Type? DeclaringType { get; }

Valeur de propriété

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

Implémente

Exemples

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

C#
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 de A.GetValue est , qui B inclut deux GetValue méthodes, l’une déclarée par A et l’autre par B, et que le type de déclaration de D.GetValue est DA.

Note

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

Remarques

La DeclaringType propriété récupère une référence à l’objet Type 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, de sorte que l’objet Type retourné par la DeclaringType propriété peut ne pas être identique à l’objet Type utilisé pour obtenir l’objet actuel MemberInfo .

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

  • Si l’objet MemberInfo est un membre global (autrement dit, s’il a été obtenu à partir de la Module.GetMethods méthode, qui retourne des méthodes globales sur un module), le retourné DeclaringType est null.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0