Type.DeclaringType Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene il tipo che dichiara il parametro di tipo generico o di tipo annidato corrente.
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
Valore della proprietà
Oggetto Type che rappresenta il tipo contenitore, se il tipo corrente è un tipo annidato, oppure la definizione di tipo generico, se il tipo corrente è un parametro di tipo di un tipo generico, oppure il tipo che dichiara il metodo generico, se il tipo corrente è un parametro di tipo di un metodo generico; in caso contrario, null
.
Implementazioni
Esempio
In questo esempio viene visualizzato il tipo dichiarante di un metodo in una classe derivata.
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
Commenti
Se Type l'oggetto corrente rappresenta un parametro di tipo di un tipo generico, questa proprietà restituisce la definizione di tipo generico.
Se Type l'oggetto corrente rappresenta un parametro di tipo di un metodo generico, questa proprietà restituisce il tipo che contiene la definizione del metodo generico. Se il tipo è generico, viene restituita la definizione del tipo generico. Ovvero, il codice seguente restituisce la definizione di tipo generico della classe List<T> generica, che contiene il ConvertAll metodo generico:
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
Se l'oggetto corrente rappresenta un parametro di tipo nella definizione di un tipo generico o di un metodo generico, le proprietà e identificano la definizione di tipo generico o la definizione di metodo generico in cui è stato originariamente definito il parametro di Type DeclaringType tipo DeclaringMethod generico:
Se la proprietà restituisce un oggetto , che rappresenta una definizione di metodo generico e l'oggetto corrente rappresenta un parametro DeclaringMethod di tipo di tale definizione di metodo MethodInfo MethodInfo Type generico.
Se la proprietà restituisce , la proprietà restituisce sempre un oggetto che rappresenta una definizione di tipo generico e l'oggetto corrente rappresenta un parametro di tipo DeclaringMethod di tale definizione di tipo
null
DeclaringType Type Type generico.Il recupero DeclaringType della proprietà su un tipo la cui proprietà è genera IsGenericParameter
false
un'eccezione InvalidOperationException .