Compartir vía


Type.BaseType Propiedad

Definición

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

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.

Se aplica a

Consulte también