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
Imports System.Reflection
Imports Microsoft.VisualBasic

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 'Main
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インスタンスを表す、EnumValueTypeクラス。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. 型の属性のプロパティと使用の値を取得する場合、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列挙型には、追加情報と例が含まれています。The example for the TypeAttributes enumeration contains additional information as well as anexample.

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