MemberInfo.DeclaringType MemberInfo.DeclaringType MemberInfo.DeclaringType MemberInfo.DeclaringType Property

Définition

Obtient la classe qui déclare ce membre.Gets the class that declares this member.

public:
 abstract property Type ^ DeclaringType { Type ^ get(); };
public abstract Type DeclaringType { get; }
member this.DeclaringType : Type
Public MustOverride ReadOnly Property DeclaringType As Type

Valeur de propriété

Objet Type de la classe qui déclare ce membre.The Type object for the class that declares this member.

Implémente

Exemples

L’exemple suivant définit une interface, IValue, avec un seul membre, GetValue.The following example defines an interface, IValue, with a single member, 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).It also defines four classes: A, a base class that implements the IValue interface; B, which inherits from A and hides its implementation of GetValue from the base class implementation; C, which simply inherits from A; and D, which inherits from A and overrides its GetValue method. 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é.The example then retrieves a MemberInfo object for each member of the type (including members inherited from Object) and displays the value of its DeclaringType property.

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
Imports System.Reflection

Interface IValue 
   Function GetValue() As Integer 
End Interface
 
Class A : Implements IValue 
   Public Overridable Function GetValue() As Integer _
                               Implements IValue.GetValue 
      Return 0 
   End Function
End Class
 
Class B : Inherits A 
   Public Shadows Function GetValue() As Integer 
      Return 0 
   End Function
End Class
 
Class C : Inherits A 
End Class

Class D : Inherits A
   Public Overrides Function GetValue() As Integer
      Return 0
   End Function
End Class

Public Module Example
   Public Sub Main()
      ' Get members of IValue interface.
      ShowMembersAndDeclaringTypes(GetType(IValue))
      Console.WriteLine()
      ShowMembersAndDeclaringTypes(GetType(A))
      Console.WriteLine()
      ShowMembersAndDeclaringTypes(GetType(B))
      Console.WriteLine()
      ShowMembersAndDeclaringTypes(GetType(C))
      Console.WriteLine()
      ShowMembersAndDeclaringTypes(GetType(D))
      Console.WriteLine()
   End Sub

   Private Sub ShowMembersAndDeclaringTypes(t As Type)
      Dim members() As MemberInfo = t.GetMembers()
      Console.WriteLine("{0} Members: ", t.Name)
      For Each member In members
         Console.WriteLine("   {0}, Declaring type: {1}", 
                           member.Name, member.DeclaringType.Name)
      Next                      
   End Sub
End Module
' 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, celle déclarée par A et l’autre par B, et que le type de déclaration D.GetValue est D.Note that the declaring type of A.GetValue is A, that B includes two GetValue methods, one declared by A and one by B, and that the declaring type of D.GetValue is D.

Notes

DeclaringType retourne uniquement les noms de membres et les noms de leurs types de déclaration.DeclaringType returns only the member names and the names of their declaring types. Pour retourner le membre de noms avec leurs prototypes, appelez MemberInfo.ToString.To return the member names with their prototypes, call MemberInfo.ToString.

Remarques

Le DeclaringType propriété récupère une référence à la Type objet pour le type qui déclare ce membre.The DeclaringType property retrieves a reference to the Type object for the type that declares this member. Un membre d’un type est déclaré par le type ou hérité d’un type de base, par conséquent, le Type objet retourné par la DeclaringType propriété ne peut pas être identique à la Type objet utilisé pour obtenir des cours MemberInfo objet.A member of a type is either declared by the type or inherited from a base type, so the Type object returned by the DeclaringType property might not be the same as the Type object used to obtain the current MemberInfo object.

  • Si le Type objet à partir duquel ce MemberInfo objet a été obtenu n’a déclaré ce membre, le DeclaringType propriété représente un de ses types de base.If the Type object from which this MemberInfo object was obtained did not declare this member, the DeclaringType property will represent one of its base types.

  • Si le MemberInfo objet est un membre global (autrement dit, si elles ont été obtenues à partir de la Module.GetMethods (méthode), qui retourne les méthodes globales sur un module), retourné DeclaringType sera null.If the MemberInfo object is a global member (that is, if it was obtained from the Module.GetMethods method, which returns global methods on a module), the returned DeclaringType will be null.

S’applique à