LIST の返り値は、null ではなく 空の LISTがいい
yfakariya さんに教えていただいたことを blog 化。
ありがとうございます。
LIST
hoge()
このコードの場合、何を返して欲しいか?という問題。
LIST
hoge()
{
return null;
}
か
LIST
hoge()
{
return new LIST();
}
なのか?
呼び出し元の if 文で使用する場合、こんな感じ。
foreach の時にだいぶ使用感が変わる
foreach( var item in (hoge() ?? new LIST
() : hoge())
or
foreach( var item in hoge())
まぁ、上は普通ではない書き方。
普通はこのように書いてしまう。
foreach( var item in hoge())
こうすると、ヌルポで落ちます。
なぜなら、中間言語では次のように展開されるから。
for( int i = 0; i < hoge().Count; i++)
そう、hoge().Count のプロパティにアクセスしようとして、
インスタンスがなくて落ちる。
だから、LIST