Di C # 6 ada fitur baru: string interpolasi.
Ini memungkinkan Anda menempatkan ekspresi langsung ke dalam kode, daripada mengandalkan indeks:
string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());
Menjadi:
string s = $"Adding \"{x}\" and {this.Y()} to foobar.";
Namun, kami memiliki banyak string di beberapa baris menggunakan string kata demi kata (terutama pernyataan SQL) seperti ini:
string s = string.Format(@"Result...
Adding ""{0}"" and {1} to foobar:
{2}", x, this.Y(), x.GetLog());
Mengembalikan ini ke string biasa tampak berantakan:
string s = "Result...\r\n" +
$"Adding \"{x}\" and {this.Y()} to foobar:\r\n" +
x.GetLog().ToString();
Bagaimana cara menggunakan string kata demi kata dan interpolasi bersama?
3
Jika ini benar-benar tentang string SQL, apakah ada alasan mengapa Anda tidak menggunakan query parametrized?
—
svick
"Kami memiliki banyak string di beberapa baris menggunakan string kata demi kata (terutama pernyataan SQL)" terdengar seperti Anda memiliki banyak string SQL yang memungkinkan serangan injeksi SQL.
—
Cetin Basoz
@vick kita, semua input pengguna parameter. Kami masih menggunakan SQL dinamis banyak, karena kami secara dinamis membuat SQL untuk entitas kami dalam kode.
—
Keith
@CetinBasoz kita tidak - semua input pengguna parameter. Ada banyak keadaan di mana Anda memiliki SQL dinamis - misalnya LINQ atau kerangka pemetaan objek lainnya.
—
Keith