tonari note

オンラインゲームエンジニアの雑記

ジェネリックとdefaultのお話

C#には型に対しての既定値が用意されています。
ジェネリック コードの default キーワード(MDSN)

既定値は、値型の場合は0、参照型の場合はnullです。
構造体では各メンバが既定値に初期化され、その値を返します。

既定値を得るにはdefaultキーワードを使用します。

また、ジェネリックと組み合わせると以下のようなことができます。

LINQでもこの機能を使用したメソッドが用意されています。

DefaultIfEmpty
ElementAtOrDefault
FirstOrDefault
LastOrDefault
SingleOrDefault

いずれも、空だったり、なかったり、述語に合う要素がなければ、型引数の既定値が返ってくるというものです。

【追記】

bool型とchar型の規定値ですが、以下のようになります。

bool型の規定値はFalseです。
char型の規定値は実行しても表示されませんが、文字リテラルの'\0'が入っています。
この'\0'はnullを表す文字となっています。

文字リテラル(MSDN)