MemberInfo.DeclaringType Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Klasse ab, die diesen Member deklariert.
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
Eigenschaftswert
Das Type
-Objekt für die Klasse, in der dieser Member deklariert ist.
Implementiert
Beispiele
Im folgenden Beispiel wird eine Schnittstelle mit IValue
einem einzelnen Member definiert GetValue
. Außerdem werden vier Klassen definiert: A
, eine Basisklasse, die die IValue
Schnittstelle implementiert; B
, die von A
der Basisklassenimplementierung erbt und ihre Implementierung GetValue
von von ausblendet; C
, die einfach von A
erbt; und D
, die von A
erbt und ihre GetValue
Methode überschreibt. Das Beispiel ruft dann ein MemberInfo -Objekt für jedes Element des Typs ab (einschließlich der von Objectgeerbten Membern ) und zeigt den Wert seiner DeclaringType Eigenschaft an.
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
Beachten Sie, dass der deklarierende Typ von A.GetValue
ist A
, der B
zwei GetValue
Methoden enthält, eine von A
deklariert und eine von B
, und dass der deklarierende Typ von D.GetValue
ist D
.
Hinweis
DeclaringType
gibt nur die Membernamen und die Namen ihrer deklarierenden Typen zurück. Um die Membernamen mit ihren Prototypen zurückzugeben, rufen Sie auf MemberInfo.ToString
.
Hinweise
Die DeclaringType -Eigenschaft ruft einen Verweis auf das Type -Objekt für den Typ ab, der dieses Element deklariert. Ein Element eines Typs wird entweder vom Typ deklariert oder von einem Basistyp geerbt, sodass das Type
von der DeclaringType -Eigenschaft zurückgegebene Objekt möglicherweise nicht mit dem Objekt identisch ist, das Type
zum Abrufen des aktuellen MemberInfo Objekts verwendet wird.
Wenn das
Type
Objekt, aus dem diesesMemberInfo
Objekt abgerufen wurde, dieses Element nicht deklariert hat, stellt die DeclaringType -Eigenschaft einen seiner Basistypen dar.Wenn es sich beim
MemberInfo
Objekt um ein globales Element handelt (d. h. wenn es von der Module.GetMethods -Methode abgerufen wurde, die globale Methoden für ein Modul zurückgibt), lautetnull
das zurückgegebene DeclaringType Element .