MemberInfo.DeclaringType Propriété
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; }
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 membre unique, GetValue
.The following example defines an interface, IValue
, with a single member, GetValue
. Il définit également quatre classes : A
, une classe de base qui implémente l' 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 ;, qui hérite C
simplement de A
; et D
, qui hérite de A
et substitue sa 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 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é.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 déclarant de A.GetValue
est A
, qui B
comprend deux GetValue
méthodes, l’une déclarée par et l' A
autre par B
, et que le type déclarant de 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 des 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 les noms des membres à l’aide de leurs prototypes, appelez MemberInfo.ToString
.To return the member names with their prototypes, call MemberInfo.ToString
.
Remarques
La DeclaringType propriété récupère une référence à l' 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, l' Type
objet retourné par la DeclaringType propriété peut ne pas être le même que l' Type
objet utilisé pour obtenir l' MemberInfo objet actuel.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 l'
Type
objet à partir duquel cetMemberInfo
objet a été obtenu n’a pas déclaré ce membre, la DeclaringType propriété représentera l’un de ses types de base.If theType
object from which thisMemberInfo
object was obtained did not declare this member, the DeclaringType property will represent one of its base types.Si l'
MemberInfo
objet 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 seranull
.If theMemberInfo
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 benull
.