Condividi tramite


Type.DeclaringType Proprietà

Definizione

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à

Type

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:

Si applica a

Vedi anche