una sirve que propiedades para interpoladas interpolacion ejemplos clase caracteristicas cadenas c# .net string-interpolation c#-6.0

sirve - ¿Para qué es el argumento opcional en la cadena interpolada de C#?



string c# ejemplos (2)

Las cadenas interpoladas son una de las nuevas características de C # 6.0.

De acuerdo con MSDN, la sintaxis de las expresiones C # incrustadas puede contener un valor opcional, separado por comas, considerado como <optional-comma-field-width> en la documentation .

Desafortunadamente no encontré para qué es este campo.

Por su nombre, se podría pensar que este valor establece el tamaño máximo del campo "interpolado", pero cuando intento la siguiente expresión:

var p = Process.GetCurrentProcess(); Console.WriteLine($"Process name is {p.ProcessName, 5}");

Me sale el siguiente resultado:

Process name is LINQPad.UserQuery


El número es la alineación , documentada en el Componente de Alineación aquí .

Los datos formateados en el campo están alineados a la derecha si la alineación es positiva y alineados a la izquierda si la alineación es negativa.

En su ejemplo, la alineación rellenará el p.ProcessName con espacios si tiene menos de 5 caracteres. Donde la longitud de la cadena es menor que el valor absoluto de la alineación (como en su ejemplo), la alineación no tiene ningún efecto.

Ejemplo

var text = "MyText"; Console.WriteLine($"x{text}x"); Console.WriteLine($"x{text, 3}x"); Console.WriteLine($"x{text, 10}x"); Console.WriteLine($"x{text, -10}x");

Resultado

xMyTextx xMyTextx x MyTextx xMyText x


Es el ancho a utilizar para ese campo. Como su cadena es más larga que los 5 caracteres que especifica para el ancho, el campo se extiende a la longitud de su cadena. Verás la diferencia más dramáticamente con un ancho más largo:

var p = Process.GetCurrentProcess(); $"Process name is {p.ProcessName, 50}".Dump();

rendimientos

Process name is LINQPad.UserQuery

Un tamaño de campo positivo está justificado a la derecha; un tamaño de campo negativo se justifica a la izquierda.

La documentación es mejor en la página de Formato Compuesto de MSDN:

El componente de alineación opcional es un entero con signo que indica el ancho del campo con formato preferido. Si el valor de la alineación es menor que la longitud de la cadena con formato, la alineación se ignora y la longitud de la cadena con formato se utiliza como el ancho del campo. Los datos formateados en el campo están alineados a la derecha si la alineación es positiva y alineados a la izquierda si la alineación es negativa. Si el relleno es necesario, se utiliza espacio en blanco. La coma es obligatoria si se especifica la alineación.