C#에서 string.Empty 와 ""



 C# Coding Standard (Coding Style) 을 보다 보면 다음과 같은 항목이 있다.
""대신에 string.Empty를 사용하라!!

 분명 이렇게 하라는 이유가 있을 것 같기에 자료좀 찾아 보았다.


1. string.Empty와 ""는 사용상의 약간의 차이점이 존재 하지만 동일한 의미 이다.

""를 사용하는 곳에 string.Empty를 사용할 수 있다.
단, switch case 문에서 case 문에는 string.Emtpy가 올 수 없다.


2. string.Empty와 ""은 동일한 의미를 가지지만 내부적으로는 다르다.?!
다음의 블로그에 가보면 string.Empty와 ""는 내부적으로 다른 점을 갖고 있다고 말한다.
http://www.sleepyon.com/133
즉, ""는 컴파일 타임에 내부적으로 object 객체를 생성하고, string.Emtpy는 객체를 생성하지 않는다.
따라서 string.Emtpy를 사용하는 것이 더 효율적인 코드라고 말하고 있다.
그런데... 믿지 못하겠다. -_-;;

null 문자인지 비교하는 방법에 대한 차트도 보여주고 있다.
if (str == "")
보다는
if (string.isNullOrEmpty(str))
이 빠른 비교 속도를 나타낸다고 한다.




3. string.Emtpy 보단 ""를 사용할 때 이점이 더 많다?!
다음의 블로그에 보면 string.Empty 보다 ""를 사용할 때 이점이 더 많다고 말하고 있다.
http://dotnetperls.com/string-empty

즉, if (string.Empty == null) 보다
if ("" == null) 이 빠른 비교 속도를 나타낸다고 말하고 있다.


4. C# "" better than string.Empty ??
위 3번 글에 대한 어느 분의 대한 생각 글이다.
http://blog.dmbcllc.com/2009/04/20/c-better-than-stringempty/
3번에서 테스트한 시나리오가 현실에 맞지 않는다는 것과,
그 결과 역시 항상 ""가 너 좋지만은 않다는 것이다.
여전히 ""를 사용할 때 보다 string.Empty를 사용할 때 도 많은 이점을 누리게 된다고 말하고 있다.




난??
난 string.Emtpy를 더 즐겨 사용하려 한다.
일단 코드를 봤을 때 더 명시적으로 다가와서 좋으며
string보단 StringBuilder를 사용해야 되지 않겠는가!
Posted by six605
,