C# 프로그래밍에서 한 문자열(String)의 값을 다른 문자열로 복사해야 하는 경우가 종종 있습니다. 이때 String.Copy() 메서드를 활용하면 간단하게 처리할 수 있습니다. 이 글에서는 기본 사용법부터 실전 예제까지 단계별로 살펴보겠습니다.
예제 1: 기본적인 문자열 복사
다음은 String.Copy() 메서드를 사용하여 문자열을 복사하는 가장 기본적인 코드입니다.
using System;
public class Demo {
static public void Main(){
string str1 = "Kevin";
string str2 = String.Copy(str1);
Console.WriteLine("String1 = "+str1);
Console.WriteLine("String2 = "+str2);
}
}
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
String1 = Kevin
String2 = Kevin
원본 문자열 str1의 값이 그대로 새로운 문자열 str2에 복사된 것을 확인할 수 있습니다.
예제 2: 기존 변수에 문자열 복사하기
이번에는 이미 값이 할당되어 있는 문자열 변수에 다른 문자열을 복사하는 예제를 살펴보겠습니다.
using System;
public class Demo {
static public void Main(){
string str1 = "Maisie";
string str2 = "Ryan";
Console.WriteLine("String1 (복사 전) = "+str1);
Console.WriteLine("String2 (복사 전) = "+str2);
str2 = String.Copy(str1);
Console.WriteLine("String1 = "+str1);
Console.WriteLine("String2 (복사 후) = "+str2);
}
}
출력 결과
실행 결과는 다음과 같습니다.
String1 (복사 전) = Maisie
String2 (복사 전) = Ryan
String1 = Maisie
String2 (복사 후) = Maisie
복사 전에는 str2에 "Ryan"이라는 값이 들어 있었지만, String.Copy(str1)을 실행한 후에는 "Maisie"로 대체된 것을 확인할 수 있습니다.
참고 사항: 최신 .NET 버전에서의 주의점
C#의 문자열은 불변(immutable) 객체이기 때문에, 실제로는 단순 대입(str2 = str1;)만으로도 동일한 결과를 얻을 수 있습니다. 특히 .NET Core 3.0 이상 및 .NET 5+ 환경에서는 String.Copy() 메서드가 더 이상 권장되지 않으며(obsolete), 컴파일 시 경고가 표시될 수 있습니다. 따라서 최신 프로젝트에서는 아래와 같이 작성하는 것이 좋습니다.
string str2 = str1;
두 방식 모두 결과적으로는 동일한 문자열 값을 가지게 되므로, 상황에 맞는 방법을 선택하여 사용하시면 됩니다.