Type.IsClass Type.IsClass Type.IsClass Type.IsClass Property


Type がクラスまたはデリゲートである (つまり値型やインターフェイスではない) かどうかを示す値を取得します。Gets a value indicating whether the Type is a class or a delegate; that is, not a value type or interface.

 property bool IsClass { bool get(); };
public bool IsClass { get; }
member this.IsClass : bool
Public ReadOnly Property IsClass As Boolean


true がクラスである場合は Type。それ以外の場合は falsetrue if the Type is a class; otherwise, false.


次の例では、型のインスタンスを作成し、型がクラスであるかどうかを示します。The following example creates an instance of a type and indicates whether the type is a class.

using namespace System;
using namespace System::Reflection;
public ref class MyDemoClass{};

int main()
      Type^ myType = Type::GetType( "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 );


using System;
using System.Reflection;

public  class MyDemoClass

public class MyTypeClass
    public static void Main(string[] args)
            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);
Imports System.Reflection

Public Class MyDemoClass
End Class 'MyDemoClass

Public Class MyTypeClass
    Public Shared Sub Main()
            Dim myType As Type = GetType(MyDemoClass)
            ' Get and display the 'IsClass' property of the 'MyDemoClass' instance.
            Console.WriteLine(ControlChars.Cr + "Is the specified type a class? {0}.", myType.IsClass.ToString())
        Catch e As Exception
            Console.WriteLine(ControlChars.Cr + "An exception occurred: {0}.", e.Message.ToString())
        End Try
    End Sub
End Class 'MyTypeClass


このプロパティはtrue 、クラスとデリゲートに対してを返します。This property returns true for classes as well as delegates. このメソッドfalseは、ボックス化されている場合でも、値型 (構造体と列挙型) に対してを返します。It returns false for value types (for structures and enumerations) even if they are boxed.

現在Typeのがジェネリック型またはジェネリックメソッドの定義の型パラメーターを表している場合、このプロパティtrueは常にを返します。現在Typeのが構築ジェネリック型を表している場合、 trueこのプロパティはを返します。これは、ジェネリック型定義がクラス定義である場合、つまりインターフェイスまたは値型を定義しない場合です。If the current Type represents a type parameter in the definition of a generic type or generic method, this property always returns true.If the current Type represents a constructed generic type, this property returns true if the generic type definition is a class definition; that is, it does not define an interface or a value type.


このプロパティはtrueType EnumクラスとValueTypeクラスを表すインスタンスに対してを返します。This property returns true for Type instances that represent the Enum and ValueType classes. これら2つのクラスは、それぞれ列挙型と値型の基本型ですが、列挙型または値型ではありません。These two classes are the base types for enumerations and value types, respectively, but they are not enumerations or value types themselves. 詳細については、 IsValueTypeIsEnum 」および「」プロパティを参照してください。For more information, see the IsValueType and IsEnum properties.

列挙TypeAttributes.ClassSemanticsMask値は、型宣言をクラスまたはインターフェイスと区別します。ただし、クラスと値の型はどちらもTypeAttributes.Class属性でマークされます。The TypeAttributes.ClassSemanticsMask enumeration value distinguishes a type declaration as class or interface.However, both classes and value types are marked with the TypeAttributes.Class attribute. 型の Attributes プロパティの値を取得し、値を使用TypeAttributes.ClassSemanticsMaskして型が値型ではなくクラスであるかどうかを判断する場合は、 IsValueTypeプロパティも呼び出す必要があります。If you retrieve the value of a type's Attributes property and use the TypeAttributes.ClassSemanticsMask value to determine whether a type is a class instead of a value type, you must also call the IsValueType property. TypeAttributes列挙体の例には、追加情報と anexample が含まれています。The example for the TypeAttributes enumeration contains additional information as well as anexample.

このプロパティは読み取り専用です。This property is read-only.