programing

문자열 보간과 문자열 형식

nasanasas 2020. 9. 10. 07:58
반응형

문자열 보간과 문자열 형식


문자열 보간 사용 사이에 눈에 띄는 성능 차이가 있습니까?

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

반응형