プロジェクトを7.0から7.1に変換して以来、非常に奇妙なエラーが発生しています。例えば:
List<bool> locks = new List<bool>(11);
locks[0] = true;
2行目に範囲外の引数をスローしますが、マウスをロックに置くと、11個の要素があり、すべてがfalseに初期化されていることが示されます。
プロジェクトを7.0から7.1に変換して以来、非常に奇妙なエラーが発生しています。例えば:
List<bool> locks = new List<bool>(11);
locks[0] = true;
2行目に範囲外の引数をスローしますが、マウスをロックに置くと、11個の要素があり、すべてがfalseに初期化されていることが示されます。
List<T>
SilverlightFrameworkでMSDNエントリを検索しました。投稿したコードが正確なコードである場合はArgumentOutOfRangeException
、インデックスが存在しないため、を取得しています。
コンストラクターList<bool> locks = new List<bool>(11);
は、要素が0で、初期容量が11の新しいリストを作成しています。
を呼び出すとlocks[0] = true;
、まだ追加されていない要素にアクセスしようとしているため、例外がスローされます。
あなたのコメントに基づくと、リストに11個のブール値が表示されているようです。2行の間にさらにコードがない限り、それは不可能です。
デバッガーを使用して、オブジェクトを十分に深く掘り下げると、List<bool>
11個の要素を持つのバッキング配列が表示されます。しかし、List
それ自体には要素がありません。これを確認するには、List.Count
そして、あなたはnull
どこでもブール値で決して見ることはありません。 bool
はデフォルト値がfalseの値型であるため、バッキング配列は11個の要素をすべてfalseで表示しています。