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