英語で読む

次の方法で共有


Type.BaseType プロパティ

定義

現在の Type の直接の継承元である型を取得します。

C#
public abstract Type? BaseType { get; }
C#
public abstract Type BaseType { get; }

プロパティ値

現在の Type の直接の継承元の Type。現在の nullType クラスまたはインターフェイスを表す場合は Object

実装

次の例では、 プロパティの使用を BaseType 示します。

C#
using System;
class TestType
{
    public static void Main()
    {
        Type t = typeof(int);
        Console.WriteLine("{0} inherits from {1}.", t,t.BaseType);
    }
}

次の例では、再帰を使用して、アセンブリ内にある各クラスの完全な継承階層を一覧表示します。 この例では、 という名前のクラスから派生する という名前CBのクラスを定義します。このクラスは、 という名前Aのクラスから派生します。

C#
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

注釈

基本型は、現在の型が直接継承される型です。 Object は、基本型を持たない唯一の型であるため null 、 の基本型 Objectとして返されます。

インターフェイスは、0 個以上の基本インターフェイスから継承されます。したがって、オブジェクトがインターフェイスを null 表す場合、 Type このプロパティは を返します。 基本インターフェイスは、 または FindInterfacesを使用してGetInterfaces決定できます。

現在 Type の が構築されたジェネリック型を表す場合、基本型にはジェネリック引数が反映されます。 たとえば、次のような宣言があるとします。

C#
class B<U> { }
class C<T> : B<T> { }

構築された型 C<int> (C(Of Integer) Visual Basic の場合) の場合、 プロパティは を BaseType 返します B<int>

現在 Type の がジェネリック型定義の型パラメーターを表す場合は、 BaseType クラス制約、つまり型パラメーターが継承する必要があるクラスを返します。 クラス制約がない場合、 は を BaseType 返します System.Object

このプロパティは読み取り専用です。

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

こちらもご覧ください