Type.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 den Typ ab, der den aktuellen geschachtelten oder generischen Typparameter deklariert.
public:
abstract property Type ^ DeclaringType { Type ^ get(); };
public:
virtual property Type ^ DeclaringType { Type ^ get(); };
public abstract Type DeclaringType { get; }
public override Type? DeclaringType { get; }
public override Type DeclaringType { get; }
member this.DeclaringType : Type
Public MustOverride ReadOnly Property DeclaringType As Type
Public Overrides ReadOnly Property DeclaringType As Type
Eigenschaftswert
Ein Type-Objekt, das den einschließenden Typ darstellt, wenn es sich bei dem aktuellen Typ um einen geschachtelten Typ handelt. Die generische Typdefinition, wenn es sich bei dem aktuellen Typ um einen Typparameter eines generischen Typs handelt. Der Typ, der die generische Methode deklariert, wenn es sich bei dem aktuellen Typ um einen Typparameter einer generischen Methode handelt. Andernfalls null
.
Implementiert
Beispiele
In diesem Beispiel wird der deklarative Typ einer Methode in einer abgeleiteten Klasse angezeigt.
using namespace System;
using namespace System::Reflection;
public ref class dtype abstract
{
public:
ref class MyClassA abstract
{
public:
virtual int m() = 0;
};
ref class MyClassB abstract: public MyClassA{};
};
int main()
{
Console::WriteLine( "The declaring type of m is {0}.", dtype::MyClassB::typeid->GetMethod( "m" )->DeclaringType );
}
/* The example produces the following output:
The declaring type of m is dtype+MyClassA.
*/
using System;
using System.Reflection;
public abstract class dtype
{
public abstract class MyClassA
{
public abstract int m();
}
public abstract class MyClassB : MyClassA
{
}
public static void Main(string[] args)
{
Console.WriteLine("The declaring type of m is {0}.",
typeof(MyClassB).GetMethod("m").DeclaringType);
}
}
/* The example produces the following output:
The declaring type of m is dtype+MyClassA.
*/
Imports System.Reflection
Public MustInherit Class dtype
Public MustInherit Class MyClassA
Public MustOverride Function m() As Integer
End Class
Public MustInherit Class MyClassB
Inherits MyClassA
End Class
Public Shared Sub Main()
Console.WriteLine("The declaring type of m is {0}.", _
GetType(MyClassB).GetMethod("m").DeclaringType)
End Sub
End Class
Hinweise
Wenn das aktuelle Type -Objekt einen Typparameter eines generischen Typs darstellt, gibt diese Eigenschaft die generische Typdefinition zurück.
Wenn das aktuelle -Objekt einen Typparameter einer generischen Methode darstellt, gibt diese Eigenschaft den Typ Type zurück, der die generische Methodendefinition enthält. Wenn der Typ generisch ist, wird die generische Typdefinition zurückgegeben. Das heißt, der folgende Code gibt die generische Typdefinition der generischen Klasse List<T> zurück, die die generische ConvertAll Methode enthält:
Type^ t = List<String^>::typeid->GetMethod("ConvertAll")->GetGenericArguments()[0]->DeclaringType;
Type t = typeof(List<string>).GetMethod("ConvertAll").GetGenericArguments()[0].DeclaringType;
Dim t As Type = GetType(List(Of String)).GetMethod("ConvertAll").GetGenericArguments()(0).DeclaringType
Wenn der aktuelle einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, identifizieren die Eigenschaften und die generische Typdefinition oder generische Methodendefinition, in der der generische Typparameter ursprünglich Type DeclaringType definiert DeclaringMethod wurde:
Wenn die -Eigenschaft einen zurückgibt, der eine generische Methodendefinition darstellt, und das aktuelle -Objekt DeclaringMethod MethodInfo einen MethodInfo Type Typparameter dieser generischen Methodendefinition darstellt.
Wenn die -Eigenschaft zurückgibt, gibt die -Eigenschaft immer ein -Objekt zurück, das eine generische Typdefinition darstellt, und das aktuelle -Objekt stellt einen Typparameter dieser DeclaringMethod
null
generischen DeclaringType Type Type Typdefinition dar.Das Abrufen DeclaringType der -Eigenschaft für einen IsGenericParameter Typ, dessen -Eigenschaft
false
eine InvalidOperationException ausspricht.