英語で読む

次の方法で共有


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
.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

こちらもご覧ください