Type.DeclaringType Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el tipo que declara el tipo anidado actual o el 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 de propiedad
Un objeto Type que representa el tipo envolvente, si el tipo actual es un tipo anidado; o la definición de tipo genérico, si el tipo actual es un parámetro de tipo de un tipo genérico; o el tipo que declara el método genérico, si el tipo actual es un parámetro de tipo de un método genérico; en caso contrario, null
.
Implementaciones
Ejemplos
En este ejemplo se muestra el tipo declarante de un método en una clase 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
Comentarios
Si el objeto Type actual representa un parámetro de tipo de un tipo genérico, esta propiedad devuelve la definición de tipo genérico.
Si el objeto Type actual representa un parámetro de tipo de un método genérico, esta propiedad devuelve el tipo que contiene la definición del método genérico. Si el tipo es genérico, se devuelve la definición de tipo genérico. Es decir, el código siguiente devuelve la definición de tipo genérico de la List<T> clase genérica, que contiene el 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
Si el objeto actual representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, las propiedades y identifican la definición de tipo genérico o la definición de método genérico donde se definió originalmente el parámetro de Type DeclaringType tipo DeclaringMethod genérico:
Si la propiedad devuelve , que representa una definición de método genérico, y el objeto actual representa un parámetro de tipo DeclaringMethod MethodInfo de esa MethodInfo Type definición de método genérico.
Si la propiedad devuelve , la propiedad siempre devuelve un objeto que representa una definición de tipo genérico y el objeto actual representa un parámetro de tipo DeclaringMethod
null
de esa DeclaringType Type Type definición de tipo genérico.Al obtener DeclaringType la propiedad en un tipo cuya propiedad es , se produce una IsGenericParameter
false
InvalidOperationException excepción .