• 3
    いいね
  • 0
    コメント

Null許容型の概要

C#では主に値型と参照型の二種類の型をサポートしている。

そのうち、値型の方は通常nullを入れることができない。

しかし、DBの値を筆頭にnull値を取るような型が欲しい時がある。

そこで登場するのがC#2.0で導入されたNull許容型である。



ポイント


・Null許容型はNullと値を持てる型である


・値型T(int)に対してT?(int?)になる


・Struct型にも使うことができる(Datetime型をDatetime?にすればnullを入れれる)


Null許容型のメンバー


・(bool型)hasValue:null以外の変数を格納している場合、Trueを返す


・(基底と同じ型)Value: HasValue が true の場合、Value は、有意な値を格納しています。



キャストと演算子

例えば以下の場合はエラーとなる

int hogeInt = 0;

int? nullInt = null;

nullInt++;

hogeInt = nullInt;


そのため以下の通りにキャストしなければならない


int hogeInt = 0;


int? nullInt = null;


nullInt++;←nullとなる


nullInt = 0;


hogeInt = (int)nullInt;



これでもいけます


int hogeInt = 0;


int? nullInt = null;


nullInt++;←nullとなる


nullInt = 0;


hogeInt = nullInt.Value;


この投稿は C# Advent Calendar 20164日目の記事です。