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 Typ oder generische 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 eingeschlossenen Typ darstellt, wenn der aktuelle Typ ein geschachtelter Typ ist; oder die generische Typdefinition, wenn der aktuelle Typ ein Typparameter eines generischen Typs ist; oder der Typ, der die generische Methode deklariert, wenn der aktuelle Typ ein Typparameter einer generischen Methode ist; andernfalls . null
Implementiert
Beispiele
In diesem Beispiel wird der deklarierende Typ einer Methode in einer abgeleiteten Klasse angezeigt.
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.
*/
[<AbstractClass>]
type MyClassA() =
abstract m: unit -> int
[<AbstractClass>]
type MyClassB() =
inherit MyClassA()
printfn $"""The declaring type of m is {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 Objekt einen Typparameter eines generischen Type Typs darstellt, gibt diese Eigenschaft die generische Typdefinition zurück.
Wenn das aktuelle Objekt einen Typparameter einer generischen Type Methode darstellt, gibt diese Eigenschaft den Typ 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 List<T> generischen Klasse zurück, die die ConvertAll generische Methode enthält:
Type t = typeof(List<string>).GetMethod("ConvertAll").GetGenericArguments()[0].DeclaringType;
let t = typeof<ResizeArray<string>>.GetMethod("ConvertAll").GetGenericArguments().[0].DeclaringType
Dim t As Type = GetType(List(Of String)).GetMethod("ConvertAll").GetGenericArguments()(0).DeclaringType
Wenn der aktuelle Type Parameter einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, identifizieren die und DeclaringMethod die DeclaringType Eigenschaften die generische Typdefinition oder generische Methodendefinition, in der der generische Typparameter ursprünglich definiert wurde:
Wenn die DeclaringMethod Eigenschaft eine MethodInfo, die MethodInfo eine generische Methodendefinition darstellt, und das aktuelle Type Objekt einen Typparameter dieser generischen Methodendefinition darstellt.
Wenn die DeclaringMethod Eigenschaft zurückgegeben wird
null, gibt die DeclaringType Eigenschaft immer ein Type Objekt zurück, das eine generische Typdefinition darstellt, und das aktuelle Type Objekt stellt einen Typparameter dieser generischen Typdefinition dar.Abrufen der DeclaringType Eigenschaft für einen Typ, dessen IsGenericParameter Eigenschaft ausgelöst InvalidOperationExceptionwird
false.