[C#] string과 String의 차이점

C# 언어 명세, 또는 클래스 기반에 대한 명확한 개념이 없어서 string과 String을 자주 혼동합니다.

string은 System.String 클래스의 별칭입니다. 다음 두가지 문자열 변수 선언은 같습니다.

string str1 = "문자열";
String str2 = "문자열";

대문자 "String"으로 선언하는 것은 "System.String" 클래스 타입으로 선언하는 것과 같습니다.

명시적으로 문자열 클래스의 메소드에 접근하는 것을 표현하고 싶을 때 대문자 "String"을 사용해서 클래스 메소드로 접근하는 것을 구분해 표현하기도 합니다.

string message = String.Format("Good morning {0}.", name);

문자열 변수를 선언하는 string 뿐만 아니라 int 또한 System.Int32의 별칭입니다.

C#에는 이렇게 별칭으로 데이터 타입 클래스를 가리키는 별칭을 여러 개 제공합니다.

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