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";
kdt
fonte

Respostas:

870

Use aspas duplas duplicadas.

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

saídas:

this "word" is escaped
Myles
fonte
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";
Brandon
fonte
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).

jaestevan
fonte
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

rfonn
fonte