string.Empty가 .Net 언어로 ""를 사용하는 것보다 효율적이라는 것이 확실합니다. 제가 알고 싶습니다. 왜 더 효율적입니까?.net에서 string.Empty가 ""보다 효율적입니까?
답변
나는 대부분의 경우 차이가 없다고 생각합니다. 일반적으로 코드에 ""
을 사용하면이 문자열이 인턴되고 동일한 문자열 인스턴스가 다시 사용됩니다. 따라서 String.Empty
과 비교했을 때 ""
을 사용할 때 문자열 인스턴스가 더 이상 존재하지 않습니다.
당신이 증명하려면 : 당신도 추가 문자열 인스턴스를 생성하지 않고 접근 방식을 혼합 할 수 있도록 또한, String.Empty
그들 중 하나를 교체하는 경우 True
Dim a As String
Dim b As String
a = ""
b = ""
Console.WriteLine(Object.ReferenceEquals(a, b)) ' Prints True '
위의 코드를 인쇄합니다.
결론 : 차이점은 개인 취향입니다.
puplic 정적 문자열에 액세스하는 것과 비교하여 interned 문자열에 액세스하는 오버 헤드가 있습니까? – JonoW
확인을 클릭하십시오. 많은 IT 괴짜가 ""의 사용을 싫어하기 때문에 이것은 알아두면 좋습니다. 나는 이것을 무시할 가치가있는 또 다른 StyleCop 규칙이라고 생각한다. –
@JonoW : 측정 해 본 적은 없지만 차이가 있다면 놀랄 것입니다. –
""이상의 string.Empty 사용시 성능이 향상되지 않는다고 생각합니다.
그 문제는 개인 취향입니다.
동의하지만 'string.Empty'는 분명히 ""보다 명확합니다. –
String을 사용하는 것이 좋습니다.비어있는, 확실하게 이것은 ""보다 더 시각적으로 호소력이 있기 때문 만 아닌가? –
Sebastian - 올바르지 않습니다. ""가 코드에있는 경우 다른 문자열 상수와 마찬가지로 ""에 대한 모든 참조가 동일한 인스턴스에 인계됩니다. – thecoop
우선, 나는 그것이 더 효율적이라는 것을 확신하지 못합니다. 정적 인 이유는 기본적으로 상수입니다. 하나의 빈 문자열 만 있습니다.
더 중요한 문제는 .NET에서 문자열 인 에이블 링에 약간의 불일치가 있기 때문에 사용중인 런타임 버전에 따라 예상 결과가 항상 반환되는 것은 아니며 String.empty와 비교할 수 있습니다. Eric Lippert가 그것에 대해 매혹적인 블로그 게시물을 작성했습니다 here. 응용 프로그램에서 빈 문자열의 인스턴스를 생성합니다
object obj = "";
string str1 = "";
string str2 = String.Empty;
Console.WriteLine(obj == str1); // true
Console.WriteLine(str1 == str2); // true
Console.WriteLine(obj == str2); // sometimes true, sometimes false?!
세 번째 줄은 결코 거짓이 아닙니다. 아마도 당신은 객체를 의미 할 것입니다. –
""
(에릭의 게시물에서 촬영 예). 물론 .NET의 인턴은 문자열 상수를 사용하지만 여전히 하나의 인스턴스를 만듭니다. 반면에 String.Empty
은 인스턴스를 만들지 않습니다. 이 중 일부 어셈블러를 기반으로 증거를 읽고 공상 경우
다음 게시물이 재미있을 수 :
In C#, should I use string.Empty or String.Empty or "" to intitialize a string? 사실, 그 전체 스레드에서 몇 가지 흥미로운 답변이 있습니다.
이전 2.0, String.Empty
이 더 효율적이지만 그 이후에는 차이가 없었던 것이 맞았습니다. What is the difference between String.Empty and "" (empty string)?
- 1. 왜 string.Empty가 읽기 전용입니까?
- 2. 외관 컨트롤러, 효율적입니까?
- 3. 데이터베이스 : "TEXT"필드가 "varchar"보다 비효율적입니까?
- 4. 이진 검색은 일반적으로 효율적입니까?
- 5. MySql 뷰가 동적이고 효율적입니까?
- 6. 자바 스크립트는 얼마나 효율적입니까?
- 7. +가 concat보다 더 효율적입니까?
- 8. PHP의 substr은 얼마나 효율적입니까?
- 9. IFrame은 얼마나 효율적입니까?
- 10. C의 구조체는 효율적입니까?
- 11. 이 채팅 스크립트는 효율적입니까?
- 12. 세부 테이블이 얼마나 효율적입니까?
- 13. java.util.regexp는 충분히 효율적입니까?
- 14. 잠금 코드가 효율적입니까?
- 15. encodeURIComponent는 얼마나 효율적입니까?
- 16. Bitnami 스택이 효율적입니까?
- 17. C#에서 string.Empty가 상수 대신 필드를 사용하는 이유는 무엇입니까?
- 18. 왜 LIKE가 =보다 빠릅니까?
- 19. 이 Move()보다 '절대적'입니까?
- 20. Process.Kill()보다 나은 옵션
- 21. 보다 효율적인 방법은
- 22. 보다 구체적인 유형은 생성자
- 23. 보다 큰 표 셀
- 24. 보다 간단한 사용법 without_access_control
- 25. 보다 효율적인 비교
- 26. PHP에서 printf는 변수 보간보다 효율적입니까?
- 27. varchar 2는 varchar 255보다 효율적입니까?
- 28. 평균적으로 스크립팅 엔진은 얼마나 효율적입니까?
- 29. Android - 어느 쪽이 더 효율적입니까?
- 30. 이 방법이 테이블 뷰에 효율적입니까?
더 효율적이라고 생각하는 이유는 무엇입니까? –
@Gregory - StyleCop은 ""에서 string.Empty로 변경하도록 권장합니다. 나는이 사실 뒤에 어떤 추론이 있다고 생각하고 싶다 ... –
하지만 당신은 왜 그 추론이 효율성과 관련이 있다고 생각하니? – jalf