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; // 권장
끝.
'프로그래밍 > C# 프로그래밍' 카테고리의 다른 글
C# Math 함수 모음집 (0) | 2015.11.30 |
---|---|
C# String Object 의 불변성 (0) | 2015.11.02 |
C# nullable 형식 - 포인터화? (0) | 2015.10.28 |
스택과 힙 메모리 - 값으로 참조형식 참조로 참조형식 (0) | 2015.10.22 |
Property - Get, Set (0) | 2015.10.21 |