Type.DeclaringType Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá typ, který deklaruje aktuální vnořený typ nebo parametr obecného typu.
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
Hodnota vlastnosti
Objekt představující nadřazený typ, pokud je aktuální typ vnořený typ, nebo definici obecného typu, pokud je aktuální typ parametrem typu obecného typu, nebo typ, který deklaruje obecnou metodu, pokud je aktuální typ parametrem typu obecné Type metody, jinak null
.
Implementuje
Příklady
Tento příklad zobrazuje deklarující typ metody v odvozené třídě.
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
Poznámky
Pokud aktuální Type objekt představuje parametr typu obecného typu, vrátí tato vlastnost definici obecného typu.
Pokud aktuální objekt představuje parametr typu obecné metody, vrátí Type tato vlastnost typ, který obsahuje definici obecné metody. Pokud je typ obecný, vrátí se definice obecného typu. To znamená, že následující kód vrátí definici obecného typu List<T> obecné třídy, která obsahuje ConvertAll obecnou metodu:
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
Pokud aktuální představuje parametr typu v definici obecného typu nebo obecné metody, vlastnosti a identifikují definici obecného typu nebo definici obecné metody, kde byl parametr obecného typu původně Type DeclaringType DeclaringMethod definován:
Pokud vlastnost vrátí , představuje definici obecné metody a aktuální objekt představuje parametr typu DeclaringMethod MethodInfo této definice obecné MethodInfo Type metody.
Pokud vlastnost vrátí hodnotu , vrátí vlastnost vždy objekt představující definici obecného typu a aktuální objekt představuje parametr typu této DeclaringMethod
null
definice obecného DeclaringType Type Type typu.Získání DeclaringType vlastnosti pro typ, jehož IsGenericParameter vlastnost vyvolá
false
InvalidOperationException .