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

C#에서 string과 String의 차이점 – 문자열 데이터 형식 완벽 가이드

C#을 배우다 보면 stringString이라는 두 가지 표기를 자주 접하게 됩니다. 결론부터 말하자면, 이 둘은 사실상 동일한 타입입니다. String은 .NET의 System.String 클래스를 의미하고, string은 C#에서 System.String에 부여된 별칭(alias)입니다.

string 별칭 사용 예시

다음과 같이 소문자 string 키워드를 사용해 변수를 선언할 수 있습니다.

string str = "Welcome!";

반면 대문자 String은 주로 클래스의 정적 메서드를 호출할 때 사용하는 것이 일반적인 관례입니다. 예를 들어 형식화된 문자열을 만들 때 다음과 같이 작성합니다.

string str = String.Format("Welcome! {0}!", user);

컴파일러 입장에서는 두 표기가 완전히 같은 타입으로 처리되므로 어느 쪽을 사용해도 무방하지만, C# 개발자들 사이에서는 변수 선언에는 string, 정적 메서드 호출에는 String을 쓰는 스타일이 널리 권장됩니다.

C# 기본 데이터 형식의 별칭 목록

string처럼 C#의 모든 기본 데이터 형식은 .NET 클래스에 대한 별칭을 가지고 있습니다. 전체 목록은 다음과 같습니다.

object : System.Object
string : System.String
bool   : System.Boolean
float  : System.Single
double : System.Double
decimal: System.Decimal
byte   : System.Byte
sbyte  : System.SByte
short  : System.Int16
ushort : System.UInt16
int    : System.Int32
uint   : System.UInt32
long   : System.Int64
ulong  : System.UInt64
char   : System.Char

C# 문자열(string) 형식의 특징

C#의 string 형식은 변수에 임의의 문자열 값을 할당할 수 있게 해주며, 내부적으로는 System.String 클래스를 참조합니다. 이 클래스는 최상위 타입인 object(System.Object)로부터 파생됩니다.

문자열 값은 크게 두 가지 방식의 리터럴(literal)로 할당할 수 있습니다.

  • 따옴표(quoted) 리터럴: 일반적인 큰따옴표(")로 감싸는 방식으로, 이스케이프 시퀀스(\n, \t 등)가 적용됩니다.
  • @ 따옴표(@quoted) 리터럴: 문자열 앞에 @를 붙이는 방식으로, 이스케이프 시퀀스를 무시하고 그대로 해석합니다. 파일 경로나 정규식 표현에 유용합니다.

사용 예제

String str = "Okay!";

// @quoted 리터럴 예시
string path = @"C:\Users\Documents\file.txt";

정리하면, stringString은 동일한 System.String 타입을 가리키며, 코드 가독성과 일관성을 위해 위에서 소개한 관례대로 사용하는 것이 좋습니다.