Saya telah berjalan melalui beberapa C# latihan di buku, dan aku berlari melintasi dan contoh yang saya bingung. Langsung dari buku, output line menunjukkan sebagai:
Console.WriteLine($"\n\tYour result is {result}.");
Sekarang aku seolah-olah berdiri, kode bekerja dan hasil ganda
menunjukkan seperti yang diharapkan. Namun, tidak memahami mengapa $ ada di depan string, saya memutuskan untuk menghapus itu, dan sekarang kode output nama array {hasil}
, bukan isi. Buku doesn't menjelaskan mengapa $ ada, sayangnya.
Saya telah menjelajahi VB 2015 membantu dan Google, mengenai string format dan Konsol.WriteLine kelebihan metode. Saya tidak melihat apa pun yang menjelaskan mengapa itu adalah apa itu. Setiap saran akan dihargai.
It's fitur baru pada C# 6 yang disebut Interpolasi String
.
Cara termudah untuk memahaminya adalah: interpolasi ekspresi string menciptakan sebuah string dengan mengganti terkandung ekspresi dengan ToString representasi ekspresi' hasil.
Untuk rincian lebih lanjut tentang ini, silakan lihat di BACA.
Sekarang, berpikir sedikit lebih banyak tentang hal itu. Mengapa fitur ini sangat bagus?
Misalnya, anda memiliki kelas Titik
:
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
Buat 2 contoh:
var p1 = new Point { X = 5, Y = 10 };
var p2 = new Point {X = 7, Y = 3};
Sekarang, anda ingin output ke layar. 2 cara yang biasanya anda gunakan:
Console.WriteLine("The area of interest is bounded by (" + p1.X + "," + p1.Y + ") and (" + p2.X + "," + p2.Y + ")");
Seperti yang anda lihat, menggabungkan string seperti ini membuat kode keras untuk membaca dan rawan kesalahan. Anda dapat menggunakan string.Format()
untuk membuatnya lebih baik:
Console.WriteLine(string.Format("The area of interest is bounded by({0},{1}) and ({2},{3})", p1.X, p1.Y, p2.X, p2.Y));
Ini menciptakan masalah baru:
Untuk alasan tersebut, kita harus menggunakan fitur baru:
Console.WriteLine($"The area of interest is bounded by ({p1.X},{p1.Y}) and ({p2.X},{p2.Y})");
Compiler sekarang mempertahankan penampung untuk anda sehingga anda tidak perlu khawatir tentang pengindeksan argumen yang tepat karena anda hanya menempatkan hal yang benar ada dalam string.
Untuk lengkapnya, silakan baca blog ini.
adalah suatu konsep bahwa bahasa seperti Perl telah cukup lama, dan sekarang kita akan mendapatkan kemampuan ini di C# juga. Dalam Interpolasi String, kita hanya awalan string dengan $ (seperti yang kita gunakan @ untuk verbatim string). Kemudian, kita hanya mengelilingi ekspresi yang kita ingin interpolasi dengan kurung kurawal (yaitu { dan }):
Ini terlihat banyak seperti String.Format() penampung, tapi bukannya indeks, itu adalah ekspresi itu sendiri di dalam kurung kurawal. Pada kenyataannya, itu seharusnya tidak menjadi kejutan bahwa itu tampak seperti String.Format() karena itu benar-benar semua itu adalah – sintaksis gula yang kompiler memperlakukan seperti String.Format() di belakang layar.
Besar bagian ini, penyusun sekarang mempertahankan penampung untuk anda sehingga anda tidak perlu khawatir tentang pengindeksan argumen yang tepat karena anda hanya menempatkan hal yang benar ada dalam string.
C# string interpolasi adalah metode concatenating,memformat dan memanipulasi string. Fitur ini diperkenalkan pada C# 6.0. Menggunakan interpolasi string, kita dapat menggunakan benda-benda dan ekspresi sebagai bagian dari string interpolasi operasi.
Sintaks dari interpolasi string dimulai dengan '$' simbol dan ekspresi yang didefinisikan dalam sebuah bracket {} menggunakan sintaks berikut.
{<interpolatedExpression>[,<alignment>][:<formatString>]}
Dimana:
Berikut contoh kode merangkai string di mana sebuah objek, penulis sebagai bagian dari string interpolasi.
string author = "Mohit";
string hello = $"Hello {author} !";
Console.WriteLine(hello); // Hello Mohit !
Baca lebih lanjut di C#/.NET Sedikit bertanya-tanya: Interpolasi String di C# 6