次の方法で共有


Type.IsValueType プロパティ

Type が値型かどうかを示す値を取得します。

Public ReadOnly Property IsValueType As Boolean
[C#]
public bool IsValueType {get;}
[C++]
public: __property bool get_IsValueType();
[JScript]
public function get IsValueType() : Boolean;

プロパティ値

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

解説

値型とは、ビットの連続で表される型であり、クラスやインターフェイスではありません。この値型は、一部のプログラミング言語では "構造体" と呼ばれます。列挙型 (Enum) は、値型の特殊な例です。

このプロパティは、列挙体に対して true を返しますが、クラスである Enum 型自体に対しては true を返しません。この動作を示す例については、 IsEnum のトピックを参照してください。

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

使用例

[Visual Basic, C#, C++] 型 MyEnum の変数を作成し、 IsValueType プロパティをチェックして、結果を表示する例を次に示します。

 
Imports System
Imports Microsoft.VisualBasic
Namespace SystemType
    Public Class [MyClass]

        ' Declare an enum type.
        Enum MyEnum
            One
            Two
        End Enum 'MyEnum

        Public Overloads Shared Sub Main()
            Try
                Dim myBool As Boolean = False
                Dim myTestEnum As MyEnum = MyEnum.One
                ' Get the type of myTestEnum.
                Dim myType As Type = myTestEnum.GetType()
                ' Get the IsValueType property of the myTestEnum variable.
                myBool = myType.IsValueType
                Console.WriteLine(ControlChars.Cr + "Is {0} a value type? {1}.", myType.FullName, myBool.ToString())
            Catch e As Exception
                Console.WriteLine(ControlChars.Cr + "An exception occurred: {0}", e.Message.ToString())
            End Try
        End Sub 'Main
    End Class '[MyClass] 
End Namespace 'SystemType

[C#] 
using System;
namespace SystemType
{
    public class MyClass
    {
        // Declare an enum type.
        enum MyEnum
        {
            One,
            Two
        }
        public static void Main(string []args)
        {
            try
            {
                bool myBool = false;
                MyEnum myTestEnum = MyEnum.One;
                // Get the type of myTestEnum.
                Type myType = myTestEnum.GetType();
                // Get the IsValueType property of the myTestEnum 
                // variable.
                myBool = myType.IsValueType;
                Console.WriteLine("\nIs {0} a value type? {1}.", myType.FullName, myBool.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine("\nAn exception occurred: {0}", e.Message);
            }
        }
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;

// Declare an enum type.
__value enum MyEnum {
   One,
   Two
};

int main() {
   try {
      bool myBool = false;
      MyEnum myTestEnum = MyEnum::One;
      // Get the type of myTestEnum.
      Type*  myType = __box(myTestEnum)->GetType();
      // Get the IsValueType property of the myTestEnum
      // variable.
      myBool = myType->IsValueType;
      Console::WriteLine(S"\nIs {0} a value type? {1}.", myType->FullName, __box( myBool));
   } catch (Exception* e) {
      Console::WriteLine(S"\nAn exception occurred: {0}", e->Message);
   }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Type クラス | Type メンバ | System 名前空間 | TypeAttributes | IsClass | IsInterface | ValueType | IsValueTypeImpl | TypeAttributes | IsClass | IsInterface | ValueType | IsValueTypeImpl