Type.BaseType Type.BaseType Type.BaseType Type.BaseType Property

Определение

Возвращает тип, для которого текущий объект Type является непосредственным наследником.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

Значение свойства

Объект Type, прямым наследником которого является текущий объект Type, или null, если текущий объект Type представляет класс Object или интерфейс.The Type from which the current Type directly inherits, or null if the current Type represents the Object class or an interface.

Реализации

Примеры

В следующем примере демонстрируется использование BaseType свойства.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);
    }
}
Imports System

Class TestType
   
    Public Shared Sub Main()
        Dim t As Type = GetType(Integer)
        Console.WriteLine("{0} inherits from {1}.", t, t.BaseType)
    End Sub 'Main
End Class 'TestType

В следующем примере рекурсия используется для перечисления полной иерархии наследования для каждого класса, найденного в сборке.The following example uses recursion to list the complete inheritance hierarchy of each class found in an assembly. В примере определяется класс с именем C , производный от класса с именем B, который, в свою очередь, является производным от класса 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

Комментарии

Базовый тип — это тип, от которого непосредственно наследуется текущий тип.The base type is the type from which the current type directly inherits. Object— единственный тип, который не имеет базового типа, поэтому null возвращается в качестве базового Objectтипа.Object is the only type that does not have a base type, therefore null is returned as the base type of Object.

Интерфейсы наследуют от нуля или более базовых интерфейсов; Поэтому это свойство возвращает null значение, Type если объект представляет интерфейс.Interfaces inherit from zero or more base interfaces; therefore, this property returns null if the Type object represents an interface. Базовые интерфейсы можно определить с помощью GetInterfaces или. FindInterfacesThe base interfaces can be determined with GetInterfaces or FindInterfaces.

Если текущий Type объект представляет сконструированный универсальный тип, базовый тип отражает универсальные аргументы.If the current Type represents a constructed generic type, the base type reflects the generic arguments. В качестве примера рассмотрим следующие объявления: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

Для сконструированного типа C<int> (C(Of Integer) BaseType в Visual Basic) свойство возвращает B<int>.For the constructed type C<int> (C(Of Integer) in Visual Basic), the BaseType property returns B<int>.

Если Current Type представляет параметр типа определения универсального типа, BaseType возвращает ограничение класса, то есть класс, который должен наследовать параметр типа.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. Если ограничение класса отсутствует, BaseType возвращает. System.ObjectIf there is no class constraint, BaseType returns System.Object.

Это свойство доступно только для чтения.This property is read-only.

Применяется к

Дополнительно