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

C#에서 string과 String의 차이점 완벽 정리

C#을 배우다 보면 stringString이라는 두 가지 표기를 접하게 됩니다. 이 둘은 과연 다른 타입일까요? 결론부터 말하면 기능적으로 완전히 동일합니다.

string과 String의 관계

String은 .NET의 실제 클래스인 System.String을 가리키는 반면, string은 C#에서 제공하는 별칭(alias)입니다. 즉, 컴파일러가 string을 만나면 자동으로 System.String으로 해석하기 때문에 두 표기는 같은 타입을 의미합니다.

사용 예시

string str = "Welcome!";

위 코드처럼 일반적인 변수 선언에는 주로 소문자 string을 사용합니다.

관례상의 차이점

엄격한 규칙은 아니지만, 개발자들 사이에서는 다음과 같은 관례가 널리 사용됩니다.

  • string: 변수 선언 등 일반적인 경우에 사용
  • String: 클래스의 정적 메서드를 호출할 때 주로 사용

예를 들어 Format 같은 정적 메서드를 호출할 때는 String 표기를 선호하는 경향이 있습니다.

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

C# 기본 타입의 별칭 목록

string처럼 C#의 모든 기본 데이터 타입은 System 네임스페이스의 타입에 대한 별칭을 가지고 있습니다. 참고로 전체 목록은 다음과 같습니다.

예제

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

정리

stringString은 동일한 System.String 타입을 가리키므로 성능이나 동작상의 차이는 전혀 없습니다. 다만 코드의 일관성을 위해 프로젝트 내에서 한 가지 스타일로 통일하는 것이 좋습니다. 마이크로소프트의 공식 C# 코딩 컨벤션에서도 변수 선언 시에는 string, 정적 멤버 접근 시에는 String 사용을 권장하고 있습니다.