コンテンツへスキップ

Nullable

.NET Framework2.0から追加されている機能なんだけど、恥ずかしながら知りませんでした。 その名のとおり、nullを表現するための型なんだけどstructのようなnullを許容しないようなものに対して使えます。

時間を作って検証しなきゃならないけど、走り書き。(動作未確認。Webでさらっと見ただけ)

// こんな感じで宣言
Nullable tBoolValue = new Nullable(true);

// nullを代入可
tBoolValue = null;
if(tBoolValue == null)
{
    // もちろん判定可能
}

でもって、シンタックスシュガーとして以下のように表現可能です。(普段はこっちを使います)

// ?をつけるとNullableになる。
bool? tBoolValue = true;

// bool?->boolにはキャストが必要
bool tValue = (bool)tBoolValue;

用途としては、

  • IndexOf系で要素が見つからなかった時に-1を返す代わりにnullを返す。
  • ColorやPoint3dなど

© 2003 Kurusugawa Computer Inc.