I have changed translation to make it more natural, have added more information, some examples, and references to Microsoft docs
2.3 KiB
title, localeTitle
title | localeTitle |
---|---|
String Interpolation | Interpolación de cadenas |
Interpolación de cadenas
En C #, normalmente para concatenar cadenas, utilizaría el operador “+” o el formato compuesto con un método como String.Format. Por formato compuesto, me refiero a una cadena de formato con marcadores de posición indexados (elementos de formato) y una lista de objetos que se utilizarán en los marcadores de posición.
string mensaje = "Hola " + nombre + " " + apellido + "!";
string mensaje2 = string.Format("Hello {0} {1}!", nombre, apellido);
C# 6, incorpora las expresiones de cadena interpoladas, estas se componen de una cadena con expresiones contenidas que se reemplazan con los resultados de las expresiones. Para utilizarlas debe prefijar su cadena con un signo de dólar ($). Las expresiones que desea incluir en la cadena se colocan en línea entre corchetes. El mensaje anterior ahora se vería así:
string mensaje = $"Hola {nombre} {apellido}!";
Dentro de un string interpolado puedes llamar a funciones, propiedades, métodos y operadores ternarios:
public class Empleado
{
public string Nombre { get; set; }
public DateTime FechaDeNacimiento { get; set; }
}
public static void Main()
{
var empleado = new Empleado();
empleado.Nombre = "Juan";
empleado.FechaDeNacimiento = new DateTime(1980, 12, 12);
Console.WriteLine($"{empleado.Nombre} ha nacido en {empleado.FechaDeNacimiento:dd/MM/yyyy}");
//Juan ha nacido en 12/12/1980
Console.WriteLine($"{(empleado.Nombre == "Juan" ? "Es Juan" : "No Es Juan")}");
//Es Juan
}
Formato y Alineación
También puedes indicar una alineación y formato al string interpolado siguiendo la siguiente sintaxis:
{<expresión interpolada>[,<alineación>][:<formato>]}
Console.WriteLine($"|{"Alineado a izquierda",-25}|");
Console.WriteLine($"|{"34",5}|");
Console.WriteLine($"{34.1234567:F3}");
|Alineado a izquierda |
| 34|
34.123
Para más información sobre las posibles alineaciones y formatos: Composite Formatting, Microsoft