Type.BaseType 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 del que hereda directamente el objeto Type actual.
public:
abstract property Type ^ BaseType { Type ^ get(); };
public abstract Type? BaseType { get; }
public abstract Type BaseType { get; }
member this.BaseType : Type
Public MustOverride ReadOnly Property BaseType As Type
Valor de propiedad
Type desde el cual el objeto Type actual hereda directamente, o null
si el objeto Type
actual representa la clase Object o una interfaz.
Implementaciones
Ejemplos
En el ejemplo siguiente se muestra cómo usar la BaseType propiedad .
using namespace System;
void main()
{
Type^ t = int::typeid;
Console::WriteLine( "{0} inherits from {1}.", t, t->BaseType );
}
using System;
class TestType
{
public static void Main()
{
Type t = typeof(int);
Console.WriteLine("{0} inherits from {1}.", t,t.BaseType);
}
}
Class TestType
Public Shared Sub Main()
Dim t As Type = GetType(Integer)
Console.WriteLine("{0} inherits from {1}.", t, t.BaseType)
End Sub
End Class
En el ejemplo siguiente se usa recursividad para enumerar la jerarquía de herencia completa de cada clase encontrada en un ensamblado. En el ejemplo se define una clase denominada que deriva de una clase denominada , que, a su vez, deriva C
de una clase denominada B
A
.
using System;
public class Example
{
public static void Main()
{
foreach (var t in typeof(Example).Assembly.GetTypes()) {
Console.WriteLine("{0} derived from: ", t.FullName);
var derived = t;
do {
derived = derived.BaseType;
if (derived != null)
Console.WriteLine(" {0}", derived.FullName);
} while (derived != null);
Console.WriteLine();
}
}
}
public class A {}
public class B : A
{}
public class C : B
{}
// The example displays the following output:
// Example derived from:
// System.Object
//
// A derived from:
// System.Object
//
// B derived from:
// A
// System.Object
//
// C derived from:
// B
// A
// System.Object
Public Class Example
Public Shared Sub Main()
For Each t In GetType(Example).Assembly.GetTypes()
Console.WriteLine("{0} derived from: ", t.FullName)
Dim derived As Type = t
Do
derived = derived.BaseType
If derived IsNot Nothing Then
Console.WriteLine(" {0}", derived.FullName)
End If
Loop While derived IsNot Nothing
Console.WriteLine()
Next
End Sub
End Class
Public Class A
End Class
Public Class B : Inherits A
End Class
Public Class C : Inherits B
End Class
' The example displays the following output:
' Example derived from:
' System.Object
'
' A derived from:
' System.Object
'
' B derived from:
' A
' System.Object
'
' C derived from:
' B
' A
' System.Object
Comentarios
El tipo base es el tipo del que hereda directamente el tipo actual. Object es el único tipo que no tiene un tipo base, por lo que null
se devuelve como el tipo base de Object .
Las interfaces heredan de cero o más interfaces base; por lo tanto, esta propiedad null
devuelve si el objeto representa una interfaz Type
. Las interfaces base se pueden determinar con GetInterfaces o FindInterfaces .
Si el objeto Type actual representa un tipo genérico construido, el tipo base refleja los argumentos genéricos. Por ejemplo, consideremos las siguientes declaraciones:
generic<typename U> ref class B { };
generic<typename T> ref class C : B<T> { };
class B<U> { }
class C<T> : B<T> { }
Class B(Of U)
End Class
Class C(Of T)
Inherits B(Of T)
End Class
Para el tipo construido C<int>
( C(Of Integer)
en Visual Basic), la propiedad devuelve BaseType B<int>
.
Si el objeto actual representa un parámetro de tipo de una definición de tipo genérico, devuelve la restricción de clase, es decir, la clase que el Type parámetro de tipo debe BaseType heredar. Si no hay ninguna restricción de clase, BaseType devuelve System.Object .
Esta propiedad es de sólo lectura.