Verbatim String Literal di C#

Nge-escape satu-satu tiap karakter spesial kalau ada banyak dan stringnya panjang apalagi multiline itu merepotkan, bisa jadi malah ada yang kelewat (mana nih yang belum ke-escape?). Untungnya di C# ada fitur yang membuat penulisan string diinterpretasikan apa adanya, jadi tidak memperdulikan karakter-karakter khusus yang biasa diawali backslash (\).

Menurut buku Tatang Sutarma, ada dua bentuk penulisan string yang didukung C# yaitu regular (biasa) dan verbatim. Nah bentuk yang kedua inilah yang saya maksudkan, cukup dengan menuliskan karakter @ sebelum tanda kutip pembuka menandakan bahwa kita tidak memperdulikan berbagai macam escape (kecuali untuk karakter tanda kutip yang harus ditulis dalam bentuk double-double-quote seperti ini -> “”).

Sebagai contoh perbandingan, di bawah ini saya memiliki sejumlah baris kode JavaScript dalam bentuk string yang ingin saya assign ke sebuah property bertipe string di C# dengan penulisan regular:

RowSelectionModel1.Listeners.RowSelect.Handler =
    "#{GridPanel1}.selModel.getSelected();" +
    "var baris = Ext.data.Record.create([" +
    "    {name: \"Id\"}," +
    "    {name: \"Path\"}" +
    "]);" +
    "var tambahan = new baris({" +
    "    id: Ext.id()," +
    "    Id: record.data.Id," +
    "    Path: \"~\\App\\XML\\\" + record.data.Nmfile + \".xml\"" +
    "});" +
    "parent.#{GridPanel1}.getStore().add(tambahan);";

Dengan mengubah penulisan stringnya ke bentuk verbatim, selain tidak perlu mengescape karakter-karakter khusus juga kita bisa menggunakan penulisan multiline. Lihat bagaimana penulisan dalam bentuk ini mengimprove readability dari kode di atas:

RowSelectionModel1.Listeners.RowSelect.Handler =
  @"#{GridPanel1}.selModel.getSelected();
    var baris = Ext.data.Record.create([
        {name: ""Id""},
        {name: ""Path""}
    ]);
    var tambahan = new baris({
        id: Ext.id(),
        Id: record.data.Id,
        Path: ""~\App\XML\"" + record.data.Nmfile + "".xml""
    });
    parent.#{GridPanel1}.getStore().add(tambahan);";

Referensi: http://msdn.microsoft.com/en-us/library/aa691090(v=VS.71).aspx

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s