Бөлісу құралы:


Type.BaseType Свойство

Определение

Возвращает тип, для которого текущий объект Type является непосредственным наследником.

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

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

Type

Объект Type, прямым наследником которого является текущий объект Type, или null, если текущий объект Type представляет класс Object или интерфейс.

Реализации

Примеры

В следующем примере демонстрируется использование BaseType Свойства.

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

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

Комментарии

Базовый тип — это тип, от которого непосредственно наследуется текущий тип. Object — единственный тип, который не имеет базового типа, поэтому возвращается в null качестве базового типа Object .

Интерфейсы наследуют от нуля или более базовых интерфейсов; Поэтому это свойство возвращает значение, null Если Type объект представляет интерфейс. Базовые интерфейсы можно определить с помощью GetInterfaces или FindInterfaces .

Если текущий объект Type представляет сконструированный универсальный тип, базовый тип отражает универсальные аргументы. В качестве примера рассмотрим следующие объявления:

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) в Visual Basic) BaseType свойство возвращает B<int> .

Если Current Type представляет параметр типа определения универсального типа, BaseType возвращает ограничение класса, то есть класс, который должен наследовать параметр типа. Если ограничение класса отсутствует, BaseType возвращает System.Object .

Это свойство доступно только для чтения.

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

См. также раздел