Bisakah saya menghindari kutip ganda dalam string literal kata demi kata?


534

Dalam string literal kata demi kata (@ "foo") dalam C #, garis miring terbalik tidak diperlakukan sebagai pelolosan, sehingga melakukan \ "untuk mendapatkan penawaran ganda tidak bekerja. Apakah ada cara untuk mendapatkan penawaran ganda dalam string literal kata demi kata ?

Ini dimengerti tidak bekerja:

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

Jawaban:


870

Gunakan penawaran ganda duplikat.

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

output:

this "word" is escaped

Saya mencoba menggunakan @ Html.Raw () dan kutipan quadruple merusak string saya
JoshYates1980

1
Bisakah Anda menggunakannya tanpa string literal? Sepertinya Html.Raw () akan memastikan bahwa ini adalah string untuk Anda ...
Myles

2
Ini juga mungkin untuk menggunakannya dalam kombinasi dengan tali interpolasi: $@"this ""{wordVar}"" is escaped";.
fdelia

113

Gunakan tanda kutip ganda.

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

95

Untuk menambahkan beberapa informasi lebih lanjut, contoh Anda akan bekerja tanpa @simbol (ini mencegah melarikan diri dengan \), dengan cara ini:

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

Ini akan bekerja dua arah, tetapi saya lebih suka gaya kutipan ganda agar lebih mudah digunakan, misalnya, dengan nama file (dengan banyak \ dalam string).


81

Ini akan membantu menjernihkan semua pertanyaan yang Anda miliki: c # literals

Ini adalah tabel dari konten yang ditautkan:

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.