BitArray 클래스란?
C#의 BitArray 클래스는 비트(bit) 값을 저장해야 하지만 저장할 비트의 개수를 미리 알 수 없는 경우에 유용하게 사용되는 컬렉션 클래스입니다. 필요에 따라 동적으로 비트 배열을 생성하고 관리할 수 있어 메모리 효율적인 비트 연산 작업에 적합합니다.
IsReadOnly 속성의 역할
IsReadOnly 속성을 사용하면 해당 BitArray 객체가 읽기 전용(Read Only) 상태인지 여부를 나타내는 불리언(Boolean) 값을 확인할 수 있습니다.
- true 반환 시: BitArray가 읽기 전용이므로 새로운 요소를 추가하거나 수정할 수 없습니다.
- false 반환 시: BitArray가 읽기 전용이 아니므로 요소의 추가 및 수정이 가능합니다.
참고로 BitArray 클래스는 기본적으로 읽기 전용 래퍼를 지원하지 않기 때문에, 일반적인 BitArray 인스턴스에서는 항상 false가 반환됩니다.
다음은 C#에서 BitArray 클래스의 IsReadOnly 속성을 사용하는 방법을 보여주는 예제입니다.
예제 코드
using System;
using System.Collections;
namespace Demo {
class Program {
static void Main(string[] args) {
BitArray ba1 = new BitArray(5);
BitArray ba2 = new BitArray(5);
byte[] a = { 90 };
byte[] b = { 30 };
ba1 = new BitArray(a);
ba2 = new BitArray(b);
Console.WriteLine("Bit array ba1: 60");
for (int i = 0; i < ba1.Count; i++) {
Console.Write("{0, -4} ", ba1[i]);
}
Console.WriteLine();
Console.WriteLine("IsReadOnly = " + ba1.IsReadOnly);
Console.WriteLine("IsReadOnly = " + ba2.IsReadOnly);
Console.ReadKey();
}
}
}실행 결과
Bit array ba1: 60 False True False True True False True False IsReadOnly = False IsReadOnly = False
코드 설명
위 예제에서는 바이트 배열 { 90 }과 { 30 }을 각각 BitArray 객체 ba1과 ba2로 변환한 후, 반복문을 통해 ba1의 각 비트 값을 출력합니다. 이어서 두 객체에 대해 IsReadOnly 속성을 호출하여 읽기 전용 여부를 확인합니다.
실행 결과 두 BitArray 모두 False를 반환하는 것을 볼 수 있습니다. 이는 해당 BitArray 객체들이 읽기 전용이 아니며, 요소의 추가나 수정이 자유롭게 가능함을 의미합니다.