simples simple escribir escapar entre dobles doble concatenar comillas comilla colocar c# string double-quotes

simple - escapar comillas dobles c#



Escape comillas dobles en una cadena (5)

Las comillas dobles se pueden escapar de esta manera:

string test = @"He said to me, ""Hello World"". How are you?";

Pero esto implica agregar carácter " a la cadena. ¿Hay una función C # u otro método para evitar comillas dobles para que no se requiera cambiar la cadena?


En C # puedes usar la barra invertida para poner caracteres especiales en tu cadena. Por ejemplo, para poner ", necesita escribir /". Hay muchos personajes que escribe usando la barra inclinada invertida: Barra diagonal inversa con un número:

  • 000 null
  • / 010 retroceso
  • / 011 pestaña horizontal
  • / 012 nueva línea
  • / 015 retorno de carro
  • / 032 sustituto
  • / 042 comillas dobles
  • / 047 comilla simple
  • / 134 barra diagonal inversa
  • / 140 acento grave

Barra invertida con otro personaje

  • / a Bell (alerta)
  • / b Retroceso
  • / f Formfeed
  • / n Nueva línea
  • Retorno de carro
  • / t Pestaña horizontal
  • / v Pestaña vertical
  • / ''Comillas simples
  • / "Doble comilla
  • / Backslash
  • /? Signo de interrogación literal
  • Personaje ASCII en notación octal
  • / x hh Carácter ASCII en notación hexadecimal
  • / x hhhh carácter Unicode en notación hexadecimal si esta secuencia de escape se utiliza en una constante de caracteres anchos o en un literal de cadena Unicode. Por ejemplo, WCHAR f = L ''/ x4e00'' o WCHAR b [] = L "El carácter chino para uno es / x4e00".

Estás malentendido escapando.

Los caracteres " adicionales " son parte del literal de la cadena y el compilador los interpreta como solos " .

El valor real de su cadena sigue siendo He said to me , "Hello World".How are you ? , como verá si lo imprime en tiempo de ejecución.


No.

O use literales literales literales como los que tiene, o escape el " uso de barras invertidas".

string test = "He said to me, /"Hello World/" . How are you?";

La cadena no ha cambiado en ninguno de los casos; hay un solo escape " en él. Esta es solo una forma de decirle a C # que el personaje es parte de la cadena y no un terminador de cadena.


Por favor explica tu problema Tu dices:

Pero esto implica agregar carácter "a la cadena.

¿Qué problema es eso? No puede escribir string foo = "Foo"bar""; , porque eso invocará un error de compilación. En cuanto a la parte de adición , en términos de tamaño de cadena que no es cierto:

@"""".Length == "/"".Length == 1


Puede usar la barra inversa de cualquier manera;

string str = "He said to me, /"Hello World/". How are you?";

Imprime;

He said to me, "Hello World". How are you?

que es exactamente lo mismo que imprime;

string str = @"He said to me, ""Hello World"". How are you?";

Aquí hay una DEMO .

" sigue siendo parte de tu cadena".

Consulte Escape Sequences y String literals desde MSDN .