c# - String Interpolation vs String.Format
performance resharper (2)
¿Existe una diferencia de rendimiento notable entre el uso de la interpolación de cadenas:
myString += $"{x:x2}";
vs String.Format ()?
myString += String.Format("{0:x2}", x);
Solo pregunto porque Resharper está solicitando la solución, y ya me han engañado antes.
La interpolación de cadenas se convierte en string.Format () en tiempo de compilación.
También en string.Format puede especificar varias salidas para un solo argumento, y diferentes formatos de salida para un solo argumento. Pero la interpolación de cadenas es más legible, supongo. Eso depende de ti.
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}";
Hay algunos resultados de la prueba de rendimiento https://koukia.ca/string-interpolation-vs-string-format-string-concat-and-string-builder-performance-benchmarks-c1dad38032a
Notable es relativo.
Sin embargo: la interpolación de cadenas se convierte en
string.Format()
en tiempo de compilación, por lo que deberían terminar con el mismo resultado.
Sin embargo, existen diferencias sutiles: como podemos deducir de
this
pregunta, la concatenación de cadenas en el especificador de formato da como resultado una
string.Concat()
adicional de
string.Concat()
.