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?
Jawaban:
Anda bisa menerapkan keduanya
$
dan@
awalan ke string yang sama:Sejak diperkenalkan di C # 6 , string kata demi kata yang diinterpolasi harus dimulai dengan token
$@
, tetapi mulai dengan C # 8, Anda bisa menggunakan salah satu$@
atau@$
.sumber
@$"..."
) tidak berfungsi, yang membawaku ke sini.$@"..."
dalam urutan itu.$@
berfungsi saat@$
tidak, masuk akal jika Anda memikirkannya. Ketika saya bingung tentang ini, yang sering terjadi ketika saya mulai menggunakan sintaks ini, saya selalu berkata pada diri saya sendiri: "Interpolasi string kata demi kata ini" menyebabkan yang sebaliknya tidak masuk akal.const string
, jatuhkanconst
.