본문 바로가기

프로그래밍/C# 프로그래밍

C# String Null 문자열

string str = "hello";
string nullStr = null;
string emptyStr = String.Empty;
string tempStr = str + nullStr;

Console.WriteLine(tempStr); // hello 가 출력된다.



그렇다면, 이건 어떨까?


bool b = (emptyStr == nullStr);
   
Console.WriteLine(b); // false


당연한거지만 false 이다.


emptyStr 은 빈문자열을 가지고 있는 포인터이고,


nullStr 은 포인터자체가 null이기 때문이다.



string newStr = emptyStr + nullStr;

이렇게 하면 새 빈 문자열이 생성된다.


Console.WriteLine(emptyStr.Length); // 0
Console.WriteLine(newStr.Length); // 0

문자열이 비어있기 때문에 0이다.


Console.WriteLine(nullStr.Length); // 이건 에러다


null은 함부로 건드리는 것이 아니다.

NullReferenceException 을 발생시킨다.



그리고 msdn에서는 "" 형태로 빈문자열을 할당하는 것을 권장하지 않는다


string message = ""; // 비권장

string message = System.String.Empty; // 권장


끝.