Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 BitArray가 읽기 전용인지 확인하는 방법

C#에서는 IsReadOnly 속성을 사용하여 BitArray가 읽기 전용인지 여부를 간단하게 확인할 수 있습니다. 이 속성은 해당 컬렉션이 읽기 전용이면 true, 수정 가능하면 false를 반환합니다. 일반적으로 new 키워드로 생성한 BitArray는 항상 쓰기가 가능하기 때문에 이 속성은 false를 반환합니다.

예제 1

다음은 두 개의 BitArray를 생성하고 IsReadOnly 속성을 확인하는 코드입니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      BitArray arr1 = new BitArray(2);
      BitArray arr2 = new BitArray(2);
      arr1[0] = false;
      arr1[1] = true;
      Console.WriteLine("BitArray1의 요소...");
      foreach (bool res in arr1) {
         Console.WriteLine(res);
      }
      arr2[0] = false;
      arr2[1] = true;
      Console.WriteLine("BitArray2의 요소...");
      foreach (bool res in arr2) {
         Console.WriteLine(res);
      }
      Console.WriteLine("BitArray1과 BitArray2가 같습니까? = " + arr2.Equals(arr1));
      Console.WriteLine("BitArray가 동기화되어 있습니까? = " + arr2.IsSynchronized);
      Console.WriteLine("BitArray가 읽기 전용입니까? = " + arr2.IsReadOnly);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

BitArray1의 요소...
False
True
BitArray2의 요소...
False
True
BitArray1과 BitArray2가 같습니까? = False
BitArray가 동기화되어 있습니까? = False
BitArray가 읽기 전용입니까? = False

예제 2

이번에는 서로 다른 값으로 초기화된 BitArray에 대해 IsReadOnly 속성을 확인해 보겠습니다.

using System;
using System.Collections;

public class Demo {
   public static void Main() {
      BitArray arr1 = new BitArray(2);
      BitArray arr2 = new BitArray(2);
      arr1[0] = false;
      arr1[1] = true;
      Console.WriteLine("BitArray1의 요소...");
      foreach (bool res in arr1) {
         Console.WriteLine(res);
      }
      Console.WriteLine("BitArray1이 읽기 전용입니까? = " + arr1.IsReadOnly);
      arr2[0] = true;
      arr2[1] = false;
      Console.WriteLine("BitArray2의 요소...");
      foreach (bool res in arr2) {
         Console.WriteLine(res);
      }
      Console.WriteLine("BitArray1과 BitArray2가 같습니까? = " + arr2.Equals(arr1));
      Console.WriteLine("BitArray2가 읽기 전용입니까? = " + arr2.IsReadOnly);
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

BitArray1의 요소...
False
True
BitArray1이 읽기 전용입니까? = False
BitArray2의 요소...
True
False
BitArray1과 BitArray2가 같습니까? = False
BitArray2가 읽기 전용입니까? = False

정리

위 예제에서 볼 수 있듯이, BitArray 클래스의 IsReadOnly 속성은 컬렉션이 읽기 전용인지 판별하는 데 사용됩니다. 참고로 Equals 메서드는 두 BitArray 객체가 동일한 인스턴스인지를 비교하며, 내부 비트 값이 같더라도 별도로 생성된 객체라면 false를 반환합니다. 또한 IsSynchronized 속성은 해당 컬렉션에 대한 접근이 스레드로부터 안전하게 동기화되어 있는지를 나타냅니다.