プロジェクトを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で表示しています。