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

C#에서 BitArray의 얕은 복사본(Shallow Copy)을 만드는 방법

C#에서 BitArray의 얕은 복사본을 만들려면 Clone() 메서드를 사용하면 됩니다. 이 메서드는 기존 BitArray와 동일한 요소를 가진 새로운 BitArray 인스턴스를 반환합니다.

예제 1

다음 예제는 Clone() 메서드를 사용하여 BitArray의 얕은 복사본을 생성하는 방법을 보여줍니다.

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      BitArray arr1 = new BitArray(5);
      arr1[0] = false;
      arr1[1] = true;
      Console.WriteLine("BitArray length = "+arr1.Length);
      Console.WriteLine("BitArray first element = "+arr1.Get(0));
      Console.WriteLine("BitArray second element = "+arr1.Get(1));
      BitArray arr2 = (BitArray)arr1.Clone();
      Console.WriteLine("\nBitArray2 length = "+arr2.Length);
      Console.WriteLine("BitArray2 first element = "+arr2.Get(0));
      Console.WriteLine("BitArray2 second element = "+arr2.Get(1));
   }
}

출력 결과

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

BitArray length = 5
BitArray first element = False
BitArray second element = True

BitArray2 length = 5
BitArray2 first element = False
BitArray2 second element = True

예제 2

이번에는 foreach 루프를 사용하여 원본 BitArray와 복사된 BitArray의 모든 요소를 출력하는 예제를 살펴보겠습니다.

using System;
using System.Collections;
public class Demo {
   public static void Main(){
      BitArray arr1 = new BitArray(5);
      arr1[0] = false;
      arr1[1] = true;
      arr1[2] = false;
      arr1[3] = true;
      Console.WriteLine("BitArray length = "+arr1.Length);
      Console.WriteLine("BitArray1의 요소...");
      foreach(Object obj in arr1)
         Console.WriteLine(obj);
      BitArray arr2 = (BitArray)arr1.Clone();
      Console.WriteLine("\nBitArray2 length = "+arr2.Length);
      Console.WriteLine("BitArray2의 요소...");
      foreach(Object obj in arr2)
         Console.WriteLine(obj);
   }
}

출력 결과

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

BitArray length = 5
BitArray1의 요소...
False
True
False
True
False

BitArray2 length = 5
BitArray2의 요소...
False
True
False
True
False

정리

Clone() 메서드는 ICloneable 인터페이스의 구현으로, BitArray의 얕은 복사본을 생성합니다. 복사본은 원본과 동일한 길이와 비트 값을 가지며, 두 객체는 서로 독립적이므로 한쪽을 수정해도 다른 쪽에는 영향을 주지 않습니다.