Type.BaseType Propriedade

Definição

Obtém o tipo do qual o Type atual é herdado diretamente.Gets the type from which the current Type directly inherits.

public:
 abstract property Type ^ BaseType { Type ^ get(); };
public abstract Type BaseType { get; }
member this.BaseType : Type
Public MustOverride ReadOnly Property BaseType As Type

Valor da propriedade

O Type do qual o Type atual é herdado diretamente ou null se o Type atual representar a classe Object ou uma interface.The Type from which the current Type directly inherits, or null if the current Type represents the Object class or an interface.

Implementações

Exemplos

O exemplo a seguir demonstra como BaseType usar a propriedade.The following example demonstrates using the BaseType property.

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

O exemplo a seguir usa recursão para listar a hierarquia de herança completa de cada classe encontrada em um assembly.The following example uses recursion to list the complete inheritance hierarchy of each class found in an assembly. O exemplo define uma classe chamada C que deriva de uma classe chamada B, que, por sua vez, deriva de uma classe chamada A.The example defines a class named C that derives from a class named B, which, in turn, derives from a class named 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

Comentários

O tipo base é o tipo do qual o tipo atual herda diretamente.The base type is the type from which the current type directly inherits. Objecté o único tipo que não tem um tipo base, portanto null , é retornado como o tipo base de. ObjectObject is the only type that does not have a base type, therefore null is returned as the base type of Object.

As interfaces herdam de zero ou mais interfaces base; Portanto, essa propriedade retorna null se o Type objeto representa uma interface.Interfaces inherit from zero or more base interfaces; therefore, this property returns null if the Type object represents an interface. As interfaces base podem ser determinadas com GetInterfaces ou FindInterfaces.The base interfaces can be determined with GetInterfaces or FindInterfaces.

Se o atual Type representar um tipo genérico construído, o tipo base refletirá os argumentos genéricos.If the current Type represents a constructed generic type, the base type reflects the generic arguments. Por exemplo, considere as declarações a seguir:For example, consider the following declarations:

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 o tipo C<int> construído (C(Of Integer) em Visual Basic), a BaseType propriedade retorna B<int>.For the constructed type C<int> (C(Of Integer) in Visual Basic), the BaseType property returns B<int>.

Se o atual Type representa um parâmetro de tipo de uma definição de tipo BaseType genérico, retorna a restrição de classe, ou seja, a classe que o parâmetro de tipo deve herdar.If the current Type represents a type parameter of a generic type definition, BaseType returns the class constraint, that is, the class the type parameter must inherit. Se não houver nenhuma restrição de classe BaseType , System.Objectretornará.If there is no class constraint, BaseType returns System.Object.

Esta propriedade é somente para leitura.This property is read-only.

Aplica-se a

Veja também