반응형
문자열 보간과 문자열 형식
문자열 보간 사용 사이에 눈에 띄는 성능 차이가 있습니까?
myString += $"{x:x2}";
대 String.Format ()?
myString += String.Format("{0:x2}", x);
Resharper가 수정을 요청하고 있기 때문에 요청하고 있으며 이전에 속아 본 적이 있습니다.
주목할만한 것은 상대적입니다. 그러나 문자열 보간은 string.Format()
컴파일 타임에 변환되므로 동일한 결과를 얻게됩니다.
그러나 미묘한 차이가 있습니다. 이 질문 에서 알 수 있듯이 형식 지정자의 문자열 연결은 추가 string.Concat()
호출을 발생시킵니다.
문자열 보간은 컴파일 타임에 string.Format ()으로 바뀝니다.
또한 string.Format에서 단일 인수에 대해 여러 출력을 지정하고 단일 인수에 대해 다른 출력 형식을 지정할 수 있습니다. 그러나 문자열 보간은 더 읽기 쉽습니다. 그래서 그것은 당신에게 달려 있습니다.
a = string.Format("Due date is {0:M/d/yy} at {0:h:mm}", someComplexObject.someObject.someProperty);
b = $"Due date is {someComplexObject.someObject.someProperty:M/d/yy} at {someComplexObject.someObject.someProperty:h:mm}";
몇 가지 성능 테스트 결과가 있습니다 https://koukia.ca/string-interpolation-vs-string-format-string-concat-and-string-builder-performance-benchmarks-c1dad38032a
참고 URL : https://stackoverflow.com/questions/32342392/string-interpolation-vs-string-format
반응형
'programing' 카테고리의 다른 글
조건부 Linq 쿼리 (0) | 2020.09.11 |
---|---|
Reactjs : 동적 자식 구성 요소 상태 또는 부모에서 소품을 수정하는 방법은 무엇입니까? (0) | 2020.09.10 |
Boost.Log 로깅 라이브러리 사용 경험이 있으십니까? (0) | 2020.09.10 |
`= default` 이동 생성자는 멤버 단위 이동 생성자와 동일합니까? (0) | 2020.09.10 |
setter가없는 속성이 직렬화되지 않는 이유 (0) | 2020.09.10 |