情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Type.IsSubclassOf メソッド

2013/12/12

現在の Type によって表されるクラスが、指定された Type によって表されるクラスから派生しているかどうかを判断します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public virtual bool IsSubclassOf(
	Type c
)

パラメーター

c
型: System.Type
現在の Type と比較する Type

戻り値

型: System.Boolean
c パラメーターによって表される Type と現在の Type がクラスを表し、現在の Type によって表されるクラスが c によって表されるクラスから派生している場合は true。それ以外の場合は falsec と現在の Type が同じクラスを表す場合も、このメソッドは false を返します。

例外条件
ArgumentNullException

c パラメーターが null です。

IsSubclassOf メソッドは、インターフェイスが別のインターフェイスから派生しているかどうか、またはクラスがインターフェイスを実装しているかどうかを判断するために使用できません。この処理には、GetInterface メソッドを使用します。型がインターフェイスから派生している場合は、このメソッドにより、Object のサブクラスとなるその型に対して true が返されることに注意してください。

現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメーターを表している場合は、クラス制約から派生しています。クラス制約がない場合は System.Object から派生しています。

メモメモ:

IsSubclassOfIsAssignableFrom の逆である場合、t1.IsSubclassOf(t2)true であれば、t2.IsAssignableFrom(t1)true です。

このメソッドは、派生クラスでオーバーライドできます。

クラスのインスタンスおよびその派生クラスのインスタンスを作成することによって IsSubclassOf メソッドを使用する例を次に示します。

メモメモ:

この例を実行するには、「Windows Phone での静的 TextBlock コントロールのあるコード例のビルド」を参照してください。


using System;

public class Class1 { }
public class DerivedC1 : Class1 { }

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Class1 myClass = new Class1();
      DerivedC1 myDClass = new DerivedC1();
      Type myClassType = myClass.GetType();
      Type myDClassType = myDClass.GetType();

      // Returns true:
      outputBlock.Text += String.Format("myDClass subclass of myClass: {0}", myDClassType.IsSubclassOf(myClassType)) + "\n";
   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示: