Type.DeclaringType Eigenschap

Definitie

Hiermee wordt het type opgehaald dat het huidige geneste type of de parameter algemeen declareert.

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

Waarde van eigenschap

Een Type object dat het omsluittype vertegenwoordigt, als het huidige type een genest type is, of de algemene typedefinitie, als het huidige type een typeparameter is van een algemeen type; of het type dat de algemene methode declareert, als het huidige type een typeparameter van een algemene methode is, nullanders.

Implementeringen

Voorbeelden

In dit voorbeeld wordt het declaratietype van een methode in een afgeleide klasse weergegeven.

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

Opmerkingen

Als het huidige Type object een typeparameter van een algemeen type vertegenwoordigt, retourneert deze eigenschap de algemene typedefinitie.

Als het huidige Type object een typeparameter van een algemene methode vertegenwoordigt, retourneert deze eigenschap het type dat de algemene methodedefinitie bevat. Als het type algemeen is, wordt de algemene typedefinitie geretourneerd. Dat wil gezegd, retourneert de volgende code de algemene typedefinitie van de List<T> algemene klasse, die de ConvertAll algemene methode bevat:

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

Als de huidige Type een typeparameter vertegenwoordigt in de definitie van een algemeen type of een algemene methode, identificeren de DeclaringType en DeclaringMethod eigenschappen de algemene typedefinitie of algemene methodedefinitie waarbij de algemene typeparameter oorspronkelijk is gedefinieerd:

Van toepassing op

Zie ook