Cadenas textuales

Cadenas textuales

# Cadenas textuales interpoladas

Las cadenas textuales se pueden combinar con las nuevas funciones de interpolación de cadenas que se encuentran en C#6.

Console.WriteLine($@"Testing \n 1 2 {5 - 2}
New line");

Salida:

Prueba \n 1 2 3
Línea nueva

Demostración en vivo en .NET Fiddle

Como se esperaba de una cadena textual, las barras invertidas se ignoran como caracteres de escape. Y como se esperaba de una cadena interpolada, cualquier expresión entre llaves se evalúa antes de insertarse en la cadena en esa posición.

# Escapando de comillas dobles

Las comillas dobles dentro de cadenas textuales se pueden escapar usando 2 comillas dobles secuenciales "" para representar una comilla doble " en la cadena resultante.

var str = @"""I don't think so,"" he said.";
Console.WriteLine(str);

Salida:

"No lo creo", dijo.

Demostración en vivo en .NET Fiddle

# Las cadenas textuales indican al compilador que no use escapes de caracteres

En una cadena normal, el carácter de barra invertida es el carácter de escape, que indica al compilador que mire los siguientes caracteres para determinar el carácter real de la cadena. (Lista completa de escapes de caracteres)

En cadenas textuales, no hay caracteres de escape (excepto "" que se convierte en un " ). Para usar una cadena textual, simplemente anteponga un @ antes de las comillas iniciales.

Esta cadena textual

var filename = @"c:\temp\newfile.txt"

Salida:

c:\temp\nuevoarchivo.txt

A diferencia de usar una cadena normal (no literal):

var filename = "c:\temp\newfile.txt"

que generará:

c:    emp
ewfile.txt

utilizando el carácter de escape. (El \t se reemplaza con un carácter de tabulación y el \n se reemplaza con una nueva línea).

Demostración en vivo en .NET Fiddle

# Cadenas multilínea

var multiLine = @"This is a 

multiline paragraph";

Salida:

Este es un párrafo de varias líneas

Demostración en vivo en .NET Fiddle

Las cadenas de varias líneas que contienen comillas dobles también se pueden escapar como si estuvieran en una sola línea, porque son cadenas textuales.

var multilineWithDoubleQuotes = @"I went to a city named

                        ""San Diego""

                      during summer vacation.";

Demostración en vivo en .NET Fiddle

Debe tenerse en cuenta que los espacios/tabulaciones al comienzo de las líneas 2 y 3 aquí están realmente presentes en el valor de la variable; consulte esta pregunta para ver las posibles soluciones.

# Sintaxis

  • @"Las cadenas textuales son cadenas cuyo contenido no se escapa, por lo que en este caso \n no representa el carácter de nueva línea sino dos caracteres individuales:\ y n. Las cadenas textuales se crean anteponiendo el contenido de la cadena con el carácter @"
  • @"Para escapar de las comillas, se utilizan ""comillas dobles"".
  • # Comentarios

    Para concatenar cadenas literales, use el símbolo @ al principio de cada cadena.

    var combinedString = @"\t means a tab" + @" and \n means a newline";