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 .