Nullable クラス


null を割り当て可能な値型をサポートします。Supports a value type that can be assigned null. このクラスは継承できません。This class cannot be inherited.

public ref class Nullable abstract sealed
public static class Nullable
public static class Nullable
type Nullable = class
type Nullable = class
Public Class Nullable


型は、値を割り当てることができる場合、または割り当て可能な場合、null 値が許容されると言い null ます。つまり、型には何の意味もありません。A type is said to be nullable if it can be assigned a value or can be assigned null, which means the type has no value whatsoever. 既定では、などのすべての参照型 String は null 値を許容しますが、などのすべての値型は null 値を許容し Int32 ます。By default, all reference types, such as String, are nullable, but all value types, such as Int32, are not.

C# および Visual Basic では、値型の後に表記法を使用して、値型を nullable としてマークし ? ます。In C# and Visual Basic, you mark a value type as nullable by using the ? notation after the value type. たとえば、 int? C# のまたは Integer? では、Visual Basic 割り当て可能な整数値型を宣言 null します。For example, int? in C# or Integer? in Visual Basic declares an integer value type that can be assigned null.

クラスは、 Nullable 構造体の相補的なサポートを提供し Nullable<T> ます。The Nullable class provides complementary support for the Nullable<T> structure. クラスは、 Nullable null 許容型の基になる型の取得、および基になる値の型が汎用的な比較および等値演算をサポートしていない null 許容型のペアに対する比較および等値演算をサポートします。The Nullable class supports obtaining the underlying type of a nullable type, and comparison and equality operations on pairs of nullable types whose underlying value type does not support generic comparison and equality operations.

ボックス化とボックス化解除Boxing and Unboxing

Null 許容型がボックス化されている場合、共通言語ランタイムは、オブジェクト自体ではなく、オブジェクトの基になる値を自動的にボックス化し Nullable<T> Nullable<T> ます。When a nullable type is boxed, the common language runtime automatically boxes the underlying value of the Nullable<T> object, not the Nullable<T> object itself. つまり、 HasValue プロパティがの場合、 true プロパティの内容 Value はボックス化されます。That is, if the HasValue property is true, the contents of the Value property is boxed.

HasValueNull 許容型のプロパティがの場合 false 、ボックス化操作の結果はになり null ます。If the HasValue property of a nullable type is false, the result of the boxing operation is null. Null 許容型の基になる値がボックス化解除されると、共通言語ランタイムは、 Nullable<T> 基になる値に初期化された新しい構造体を作成します。When the underlying value of a nullable type is unboxed, the common language runtime creates a new Nullable<T> structure initialized to the underlying value.


Compare<T>(Nullable<T>, Nullable<T>)

2 つの Nullable<T> オブジェクトの相対値を比較します。Compares the relative values of two Nullable<T> objects.

Equals<T>(Nullable<T>, Nullable<T>)

指定した 2 つの Nullable<T> オブジェクトが等しいかどうかを示します。Indicates whether two specified Nullable<T> objects are equal.


指定した NULL 許容型の基になる型を返します。Returns the underlying type argument of the specified nullable type.