Nullable Nullable Nullable Nullable Class


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#またはのInteger? Visual Basic では、 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. プロパティがfalseの場合、 nullはボックス化されます。 HasValueIf 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>) Compare<T>(Nullable<T>, Nullable<T>) Compare<T>(Nullable<T>, Nullable<T>) Compare<T>(Nullable<T>, Nullable<T>)

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

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

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

GetUnderlyingType(Type) GetUnderlyingType(Type) GetUnderlyingType(Type) GetUnderlyingType(Type)

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