2012-03-23 13 views
0

可能性の重複:ターゲットコレクションがnullの場合
Why does .NET foreach loop throw NullRefException when collection is null?foreachのデザインのアイデア

foreachの反復子が例外をスローします。

例:

List<string> names = null; 
foreach(var name in names) { /* throws exception */ } 

その背後にあるデザインのアイデアは何ですか。 .NET Frameworkが例外をスローする代わりにループを反復処理しないと便利ではないですか?

答えて

0

私は背後には考えがないことだと思います。あなたが知っているように、foreachはずっと後で追加されました。列挙子とforeachがそれに基づいて構築されます(*)。

var enumerator = someList.GetEnumerator(); 
while (enumerator.MoveNext()) 
{ 
    //do something with enumerator.Current 
} 

あなたがnullである何かにGetEnumeratorを実行することはできません。

(*) foreachはとやや同等です。

+1

「foreach」が導入されたC#のバージョンは? – phoog

+0

バージョン2.0では、自分のコレクションのforeachを書くことができます。 –

+0

これを確認したところ、http://www.wrox.com/WileyCDA/Section/What-s-New-in-the-NET-Framework-2-0.id-290323.html参照:イテレータ。 –

関連する問題