英語で読む

次の方法で共有


Type.IsClass プロパティ

定義

Type がクラスまたはデリゲートである (つまり値型やインターフェイスではない) かどうかを示す値を取得します。

C#
public bool IsClass { get; }

プロパティ値

true がクラスである場合は Type。それ以外の場合は false

実装

次の例では、型のインスタンスを作成し、その型がクラスであるかどうかを示します。

C#
using System;
using System.Reflection;

public  class MyDemoClass
{
}

public class MyTypeClass
{
    public static void Main(string[] args)
    {
        try
        {
            Type  myType = typeof(MyDemoClass);
            // Get and display the 'IsClass' property of the 'MyDemoClass' instance.
            Console.WriteLine("\nIs the specified type a class? {0}.", myType.IsClass);
        }
        catch(Exception e)
        {
            Console.WriteLine("\nAn exception occurred: {0}." ,e.Message);
        }
    }
}

注釈

このプロパティは、 true デリゲートと同様にクラスに対して を返します。 ボックス化されている場合でも、値型 (構造体と列挙型の場合) に対して が返 false されます。

現在 Type の がジェネリック型またはジェネリック メソッドの定義で型パラメーターを表す場合、このプロパティは常に を返します true。 現在 Type の が構築されたジェネリック型を表す場合、ジェネリック型定義がクラス定義である場合、つまり true インターフェイスや値型は定義されません。

注意

このプロパティは、 true クラスと ValueType クラスを表すインスタンスに対Typeして をEnum返します。 これら 2 つのクラスはそれぞれ列挙型と値型の基本型ですが、列挙型や値型自体ではありません。 詳細については、IsValueType プロパティおよび IsEnum プロパティを参照してください。

列挙値は TypeAttributes.ClassSemanticsMask 、型宣言をクラスまたはインターフェイスとして区別します。 ただし、クラスと値の型の両方が 属性で TypeAttributes.Class マークされます。 型の Attributes プロパティの値を取得し、その値を TypeAttributes.ClassSemanticsMask 使用して、型が値型ではなくクラスであるかどうかを判断する場合は、 プロパティも呼び出す IsValueType 必要があります。 列挙型の TypeAttributes 例には、追加の情報とサンプルが含まれています。

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

適用対象

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

こちらもご覧ください