Type.DeclaringType Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o tipo que declara o tipo aninhado atual ou o parâmetro de tipo genérico.
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
Valor da propriedade
Um objeto Type que representará o tipo de delimitador se o tipo atual for um tipo aninhado, a definição de tipo genérico se o tipo atual for um parâmetro de tipo de um tipo genérico ou o tipo que declara o método genérico se o tipo atual for um parâmetro de tipo de um método genérico. Caso contrário, null
.
Implementações
Exemplos
Este exemplo exibe o tipo declarante de um método em uma classe derivada.
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
Comentários
Se o objeto Type atual representar um parâmetro de tipo de um tipo genérico, essa propriedade retornará a definição de tipo genérico.
Se o objeto Type atual representar um parâmetro de tipo de um método genérico, essa propriedade retornará o tipo que contém a definição de método genérico. Se o tipo for genérico, a definição de tipo genérico será retornada. Ou seja, o código a seguir retorna a definição de tipo genérico da List<T> classe genérica, que contém o ConvertAll método genérico:
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 o atual representar um parâmetro de tipo na definição de um tipo genérico ou método genérico, as propriedades e identificarão a definição de tipo genérico ou a definição de método genérico em que o parâmetro de tipo genérico Type DeclaringType foi DeclaringMethod originalmente definido:
Se a propriedade retornar um , que representa uma definição de método genérico e o objeto atual representar um parâmetro DeclaringMethod MethodInfo de tipo dessa MethodInfo Type definição de método genérico.
Se a propriedade retornar , a propriedade sempre retornará um objeto que representa uma definição de tipo genérico e o objeto atual representará um parâmetro de tipo DeclaringMethod
null
dessa DeclaringType Type Type definição de tipo genérico.Obter a DeclaringType propriedade em um tipo cuja propriedade é lança um IsGenericParameter
false
InvalidOperationException .