MemberInfo.DeclaringType Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient la classe qui déclare ce membre.
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.
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é.
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 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 D
A
.
Notes
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 cetMemberInfo
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 estnull
.