Kode berikut menghasilkan kesalahan kompilator tentang "urutan pelolosan yang tidak dikenal" untuk setiap garis miring terbalik:
string foo = "D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Saya kira saya harus melarikan diri dari garis miring terbalik? Bagaimana aku melakukan itu?
Coba ini:
string foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
Masalahnya adalah bahwa dalam string, a
\
adalah karakter pelarian. Dengan menggunakan@
tanda Anda memberi tahu kompiler untuk mengabaikan karakter escape.Anda juga bisa bertahan dengan keluar dari
\
:string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
sumber
var foo = @"D:\Projects\Some\Kind\Of\Pathproblem\wuhoo.xml";
sumber
Jika string Anda adalah jalur file, seperti dalam contoh Anda, Anda juga dapat menggunakan jalur file gaya Unix:
string foo = "D:/Projects/Some/Kind/Of/Pathproblem/wuhoo.xml";
Tetapi jawaban lain memiliki solusi yang lebih umum untuk string escaping di C #.
sumber
string foo = "D:\\Projects\\Some\\Kind\\Of\\Pathproblem\\wuhoo.xml";
Ini akan berhasil, atau contoh sebelumnya juga akan berhasil. @ "..." berarti perlakukan semua yang ada di antara tanda kutip secara harfiah, sehingga Anda bisa melakukannya
@"Hello world"
Untuk memasukkan baris baru literal. Saya lebih tua dan lebih memilih untuk melarikan diri "\" dengan "\\"
sumber