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
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 値が許容されますが、Int32などのすべての値型は null 値を許容しません。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. たとえば、 C#またはの Visual Basic Integer?int?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. HasValue プロパティが false場合、null はボックス化されます。If the HasValue property is false, null is boxed. 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.