내 코드를 통해 StyleCop을 실행했으며 SA1122 권장 사항 중 하나는 빈 문자열을 값에 할당 할 때 ""대신 string.Empty를 사용하는 것입니다.
내 질문은 이것이 왜 모범 사례로 간주되는지입니다. 아니면 이것이 모범 사례로 간주됩니까? 두 문 사이에 컴파일러 차이가 없다고 가정하므로 가독성이라고 생각할 수 있습니까?
내 코드를 통해 StyleCop을 실행했으며 SA1122 권장 사항 중 하나는 빈 문자열을 값에 할당 할 때 ""대신 string.Empty를 사용하는 것입니다.
내 질문은 이것이 왜 모범 사례로 간주되는지입니다. 아니면 이것이 모범 사례로 간주됩니까? 두 문 사이에 컴파일러 차이가 없다고 가정하므로 가독성이라고 생각할 수 있습니까?
답변:
가독성과 사소한 성능 향상의 두 가지 이유가 있다고 생각합니다.
가독성은 쉽습니다.보다 쉽게 발견 할 string.Empty수 ""있습니다. 검색 string.Empty은 일반적으로 리터럴을 찾는 것보다 쉽고 쉬울 것입니다. 또한 오타를 만들거나 무언가를 끝내는 것을 잊어 버린 것이 아니라 빈 문자열을 원했습니다.
성능상의 이유는 interning 때문입니다 . 런타임은 이전에 사용한 문자열 테이블을 유지하므로 실제로 문자 별 검사를 수행하지 않고도 문자열 비교를 신속하게 수행 할 수 있습니다. string.Empty이미에 억류 참조 인 ""경우 - 같은 따라서 약간의 성능 저하의 원인이 당신에게 억류 된 버전을 제공하지 않을 수도 있습니다 문자를 입력.
내가 찾은 일부 문서에 따르면 컴파일러가 방출 한 것과 관련이 있습니다.
빠른 검색 결과 : http://stylecop.soyuz5.com/SA1122.html
그 설명과 함께 "가독성 규칙"에 제출 된 이유는 당황 스럽습니다.
""하지만string.Empty