Jalur berkas Windows seperti C:\Users\Budi\Documents memuat banyak backslash. Pada string biasa, setiap backslash harus ditulis ganda karena karakter tersebut pembuka escape sequence. Kesalahan penulisan ganda sering terjadi dan hasilnya sulit diperiksa. String verbatim berawalan @ menonaktifkan pemrosesan backslash, sehingga teks bisa ditulis apa adanya.
Sintaks Verbatim dengan @ #
Letakkan karakter @ sebelum tanda petik pembuka. Di dalam string verbatim, backslash tampil apa adanya, dan tanda petik dua ditulis ganda ("") bila ingin tampil sebagai satu petik:
string jalur = @"C:\Users\Budi\Documents\laporan.xlsx";
Console.WriteLine(jalur);
string jalurBiasa = "C:\\Users\\Budi\\Documents\\laporan.xlsx";
Console.WriteLine(jalur == jalurBiasa);Output yang Dihasilkan:
C:\Users\Budi\Documents\laporan.xlsx
TrueMari kita telaah baris demi baris:
- Baris 1 (
@"..."): String verbatim memuat backslash tunggal seperti yang ditulis; tidak ada\\ganda. - Baris 4 (
"C:\\Users..."): String biasa menulis setiap backslash dua kali agar tidak dibaca sebagai pembuka escape. - Baris 5 (
jalur == jalurBiasa): Kedua pendekatan menghasilkan isi string yang identik, sehingga perbandingannyaTrue. Verbatim hanya berbeda cara penulisan, bukan isinya.
String Verbatim Multiline #
String verbatim boleh meliputi beberapa baris, dan karakter baris baru ikut masuk ke dalam string apa adanya. Pola ini praktis untuk teks pengumuman atau potongan format tetap:
string pengumuman = @"Kasir berkata, ""Toko tutup pukul 21.00.""
Mohon selesai berbelanja sebelum waktu tersebut.";
Console.WriteLine(pengumuman);Output yang Dihasilkan:
Kasir berkata, "Toko tutup pukul 21.00."
Mohon selesai berbelanja sebelum waktu tersebut.Baris pertama memuat kutipan ucapan kasir. Tanda "" ganda pada kode menghasilkan satu petik dua pada output, sehingga teks tampil sebagai "Toko tutup pukul 21.00.". Baris kedua pada kode langsung menjadi baris kedua pada string tanpa perlu \n.
Verbatim vs Raw String #
| Aspek | Verbatim @"..." | Raw """...""" |
|---|---|---|
| Backslash | Tampil apa adanya | Tampil apa adanya |
| Tanda petik di dalam teks | Ditulis ganda "" | Cukup satu petik |
Escape sequence (\n, \t) | Tidak diproses | Tidak diproses |
| Versi bahasa | Sejak C# 1 | C# 11 ke atas |