英語で読む

次の方法で共有


Type.IsAbstract プロパティ

定義

Type が抽象型で、オーバーライドする必要があるかどうかを示す値を取得します。

C#
public bool IsAbstract { get; }

プロパティ値

true が抽象である場合は Type。それ以外の場合は false

実装

次の例では、次の型を表す オブジェクトの Type 配列を作成します。指定したオブジェクトが の場合は contains 型が返 true されます。それ以外の場合は abstractを返します false

  • AbstractClass、抽象クラス (C# および MustInherit Visual Basic で としてabstractマークされたクラス)。

  • DerivedClassから AbstractClass継承するクラス。

  • SingleClass、継承不可能なクラス。 これは、C# と NotInheritable Visual Basic で とsealed定義されています。

  • ITypeInfo、インターフェイス。

  • ImplementingClassインターフェイスを実装する ITypeInfo クラス。

メソッドは、 、抽象クラス、および ITypeInfoインターフェイスに対AbstractClassしてのみ を返trueします。

C#
using System;

public abstract class AbstractClass
{}

public class DerivedClass : AbstractClass
{}

public sealed class SingleClass
{}

public interface ITypeInfo
{
   string GetName();
}

public class ImplementingClass : ITypeInfo
{
   public string GetName()
   {
      return this.GetType().FullName;
   }
}

delegate string InputOutput(string inp);

public class Example
{
   public static void Main()
   {
      Type[] types= { typeof(AbstractClass),
                      typeof(DerivedClass),
                      typeof(ITypeInfo),
                      typeof(SingleClass),
                      typeof(ImplementingClass),
                      typeof(InputOutput) };
      foreach (var type in types)
         Console.WriteLine("{0} is abstract: {1}",
                           type.Name, type.IsAbstract);
   }
}
// The example displays the following output:
//       AbstractClass is abstract: True
//       DerivedClass is abstract: False
//       ITypeInfo is abstract: True
//       SingleClass is abstract: False
//       ImplementingClass is abstract: False
//       InputOutput is abstract: False

注釈

プロパティは IsAbstract 、次の true 場合にを返します。

  • 現在の型は抽象型です。つまり、インスタンス化することはできませんが、派生クラスの基底クラスとしてのみ機能できます。 C# では、抽象クラスは抽象キーワード (keyword)でマークされます。F# では、AbstractClass 属性でマークされます。Visual Basic では、MustInherit キーワード (keyword)でマークされます。

  • 現在の型は インターフェイスです。

現在 Type の がジェネリック型またはジェネリック メソッドの定義で型パラメーターを表す場合、このプロパティは常に を返します false

適用対象

製品 バージョン
.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

こちらもご覧ください