для коллекций данного класса синхронизированная оболочка недоступна, а свойство IsSynchronized всегда имеет логическое значение false. Тем не менее для управления доступом к коллекции типа BitArray ее можно синхронизировать для объекта, предоставляемого упоминавшимся ранее свойством SyncRoot.
Таблица 25.9. Методы, определенные в классе BitArray
Метод
Описание
public
BitArray And (BitArray
Выполняет операцию логического умножения И битов вызывающего объекта и коллекции
public
bool Get(int
Возвращает значение бита, указываемого по индексу
public
BitArray Not()
Выполняет операцию поразрядного логического отрицания НЕ битов вызывающей коллекции и возвращает коллекцию типа BitArray, содержащую результат
Метод
Описание
public BitArray Or(BitArray
public void Set (int
public void SetAll(bool
public BitArray Xor(BitArray
Выполняет операцию логического сложения ИЛИ битов вызывающего объекта и коллекции
Устанавливает бит, указываемый по индексу
Устанавливает все биты равными значению
Выполняет логическую операцию исключающее ИЛИ над битами вызывающего объекта и коллекции
В классе BitArray определяется также собственное свойство, помимо тех, что указаны в интерфейсах, которые в нем реализуются.
public int Length { get; set; }
Свойство Length позволяет установить или получить количество битов в коллекции. Следовательно, оно возвращает такое же значение, как и стандартное свойство Count, определяемое для всех коллекций. В отличие от свойства Count, свойство Length доступно не только для чтения, но и для записи, а значит, с его помощью можно изменить размер коллекции типа BitArray. Так, при сокращении коллекции типа BitArray лишние биты усекаются, начиная со старшего разряда. А при расширении коллекции типа BitArray дополнительные биты, имеющие логическое значение false, вводятся в коллекцию, начиная с того же старшего разряда.
Кроме того, в классе BitArray определяется следующий индексатор.
public bool this[int
С помощью этого индексатора можно получать или устанавливать значение элемента. В приведенном ниже примере демонстрируется применение класса BitArray.
// Продемонстрировать применение класса BitArray.
using System;
using System.Collections;
class BADemo {
public static void ShowBits(string rem,
BitArray bits) {
Console.WriteLine(rem);
for(int i=0; i < bits.Count; i++)
Console.Write('{0, -6} ', bits[i]);
Console.WriteLine (' ');
}
static void Main() {
BitArray ba = new BitArray(8); byte[] b = { 67 };
BitArray ba2 = new BitArray(b);
ShowBits('Исходное содержимое коллекции Ьа:', Ьа) ; ba = Ьа.Not ();
ShowBits('Содержимое коллекции Ьа после логической операции NOT:', Ьа);
ShowBits('Содержимое коллекции Ьа2:', Ьа2);
BitArray ЬаЗ = Ьа.Хог(Ьа2);
