Fitur keren. Saya hanya ingin menunjukkan penekanan pada mengapa ini lebih baik daripada string.format jika tidak jelas bagi sebagian orang.
Saya membaca seseorang yang mengatakan urutan string.format ke "{0} {1} {2}" untuk mencocokkan parameter. Anda tidak dipaksa untuk memesan "{0} {1} {2}" di string.format, Anda juga dapat melakukan "{2} {0} {1}". Namun, jika Anda memiliki banyak parameter, seperti 20, Anda benar-benar ingin mengurutkan string menjadi "{0} {1} {2} ... {19}". Jika berantakan, Anda akan kesulitan mengatur parameter Anda.
Dengan $, Anda dapat menambahkan parameter sebaris tanpa menghitung parameter Anda. Ini membuat kode lebih mudah dibaca dan dipelihara.
Kelemahan dari $ adalah, Anda tidak dapat mengulangi parameter dalam string dengan mudah, Anda harus mengetiknya. Misalnya, jika Anda bosan mengetik System.Environment.NewLine, Anda dapat melakukan string.format ("... {0} ... {0} ... {0}", System.Environment.NewLine), tetapi, dalam $, Anda harus mengulanginya. Anda tidak dapat melakukan $ "{0}" dan meneruskannya ke string.format karena $ "{0}" mengembalikan "0".
Di samping catatan, saya telah membaca komentar di tpoic duplikat lain. Saya tidak bisa berkomentar, jadi ini dia. Ia mengatakan bahwa
string msg = n + " sheep, " + m + " chickens";
membuat lebih dari satu objek string. Ini sebenarnya tidak benar. Jika Anda melakukan ini dalam satu baris, itu hanya membuat satu string dan ditempatkan di cache string.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
Semuanya mengembalikan string dan hanya membuat satu nilai dalam cache.
Di samping itu:
string+= string2;
string+= string2;
string+= string2;
string+= string2;
Menciptakan 4 nilai berbeda dalam cache karena ada 4 ";".
Dengan demikian, akan lebih mudah untuk menulis kode seperti berikut ini, tetapi Anda akan membuat lima string yang diinterpolasi saat Carlos Muñoz mengoreksi:
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
Ini menciptakan satu string tunggal dalam cache sementara Anda memiliki kode yang sangat mudah dibaca. Saya tidak yakin tentang kinerjanya, tetapi, saya yakin MS akan mengoptimalkannya jika belum melakukannya.