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의 얕은 복사본을 생성합니다. 복사본은 원본과 동일한 길이와 비트 값을 가지며, 두 객체는 서로 독립적이므로 한쪽을 수정해도 다른 쪽에는 영향을 주지 않습니다.