Type.DeclaringType Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient le type qui déclare le type imbriqué ou paramètre de type générique actuel.
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 définition du type générique, si le type actuel est un paramètre de type d'un type générique ; ou 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 affiche le type déclarant d’une méthode dans une classe dérivée.
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
Remarques
Si l' Type objet actuel 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' Type objet actuel 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 = 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
Si le 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 DeclaringType DeclaringMethod Propriétés et 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 :
Si la DeclaringMethod propriété retourne un MethodInfo , qui MethodInfo représente une définition de méthode générique, et l' Type objet actuel représente un paramètre de type de cette définition de méthode générique.
Si la DeclaringMethod propriété retourne
null
, la DeclaringType propriété retourne toujours un Type objet représentant une définition de type générique, et l' Type objet actuel représente un paramètre de type de cette définition de type générique.Obtention de la DeclaringType propriété sur un type dont la IsGenericParameter propriété
false
lève une exception InvalidOperationException .