BitArray не работает должным образом
У меня есть этот BitArray:
BitArray bits = new BitArray(2);
bits[0] = false;
bits[1] = true;
Который представляет: 10b
-> 2
Посмотрим, в чем его ценность:
int[] array = new int[1];
bits.CopyTo(array, 0);
Console.WriteLine(array[0]); // value=2
Отлично.
Теперь я меняю первый код на:
bool[] bits = new bool[2] { false, true }; //same value !
BitArray myBA4 = new BitArray( bits );
//and again...
int[] array = new int[1];
bits.CopyTo(array, 0);
Console.WriteLine(array[0]);
- Исключение: массив назначения был недостаточно длинным. Проверьте destIndex и длину, а также нижние границы массива.
Вопрос
Где моя ошибка? Я думаю, что это должен быть тот же результат.
1 ответ
Решение
bool[] bits = new bool[2] { false, true };
выделяет массив из двух элементов, и CopyTo
должен копировать их по одному. Это не может быть успешным, потому что
- второй массив слишком короткий;
bool
не может быть преобразован вint
неявно.