Escape comillas dobles en una cadena

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?

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.

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 .

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 comstackdor 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.

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 comstackción. En cuanto a la parte de adición , en términos de tamaño de cadena que no es cierto:

 @"""".Length == "\"".Length == 1