Partager via


Type.DeclaringType Propriété

Définition

Obtient le type qui déclare le type imbriqué actuel ou le paramètre de type générique.

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

Valeur de propriété

Objet Type représentant le type englobant, si le type actuel est un type imbriqué ; ou la définition de type générique, si le type actuel est un paramètre de type d’un type générique ; ou le type qui déclare la méthode générique, si le type actuel est un paramètre de type d’une méthode générique ; sinon, null.

Implémente

Exemples

Cet exemple montre comment afficher le type de déclaration d’une méthode dans une classe dérivée.

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

Remarques

Si l’objet actuel Type représente un paramètre de type d’un type générique, cette propriété retourne la définition de type générique.

Si l’objet actuel Type représente un paramètre de type d’une méthode générique, cette propriété retourne le type qui contient la définition de méthode générique. Si le type est générique, la définition de type générique est retournée. Autrement dit, le code suivant retourne la définition de type générique de la List<T> classe générique, qui contient la ConvertAll méthode générique :

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

Si le paramètre actuel Type représente un paramètre de type dans la définition d’un type générique ou d’une méthode générique, les DeclaringTypeDeclaringMethod propriétés identifient la définition de type générique ou la définition de méthode générique où le paramètre de type générique a été initialement défini :

S’applique à

Voir aussi