Posso escapar de aspas duplas em uma string literal literal?


534

Em uma string literal literal (@ "foo") em C #, as barras invertidas não são tratadas como escapes, portanto \ "obter uma citação dupla não funciona. Existe alguma maneira de obter uma citação dupla em uma string literal literal ?

Compreensivelmente, isso não funciona:

string foo = @"this \"word\" is escaped";

Respostas:


870

Use aspas duplas duplicadas.

@"this ""word"" is escaped";

saídas:

this "word" is escaped

Eu estou tentando usar @ Html.Raw () e a citação quadruple quebra meu corda
JoshYates1980

1
Você pode usá-lo sem a string literal? Parece que Html.Raw () iria cuidar de garantir que é uma corda para você ...
Myles

2
Também é possível usá-lo em combinação com interpolação de string: $@"this ""{wordVar}"" is escaped";.
Fdelia

113

Use aspas duplas.

string foo = @"this ""word"" is escaped";

95

Para adicionar mais algumas informações, seu exemplo funcionará sem o @símbolo (evita escapar com \), desta maneira:

string foo = "this \"word\" is escaped!";

Funcionará nos dois sentidos, mas eu prefiro o estilo de aspas duplas para que seja mais fácil trabalhar, por exemplo, com nomes de arquivos (com muitos \ na cadeia de caracteres).


81

Isso deve ajudar a esclarecer qualquer dúvida que você possa ter: c # literais

Aqui está uma tabela do conteúdo vinculado:

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.