Tính năng mát mẻ. Tôi chỉ muốn chỉ ra sự nhấn mạnh về lý do tại sao điều này tốt hơn string.format nếu nó không rõ ràng với một số người.
Tôi đọc ai đó nói thứ tự string.format thành "{0} {1} {2}" để khớp với các tham số. Bạn không bị buộc phải đặt hàng "{0} {1} {2}" trong chuỗi.format, bạn cũng có thể thực hiện "{2} {0} {1}". Tuy nhiên, nếu bạn có nhiều tham số, như 20, bạn thực sự muốn sắp xếp chuỗi thành "{0} {1} {2} ... {19}". Nếu đó là một mớ hỗn độn, bạn sẽ gặp khó khăn trong việc sắp xếp các thông số của mình.
Với $, bạn có thể thêm tham số nội tuyến mà không cần đếm tham số của mình. Điều này làm cho mã dễ đọc và bảo trì hơn nhiều.
Nhược điểm của $ là, bạn không thể lặp lại tham số trong chuỗi một cách dễ dàng, bạn phải gõ nó. Ví dụ: nếu bạn cảm thấy mệt mỏi khi gõ System.En Môi.NewLine, bạn có thể thực hiện chuỗi.format ("... {0} ... {0} ... {0}", System.En Môi.NewLine), nhưng, bằng $, bạn phải lặp lại nó. Bạn không thể thực hiện $ "{0}" và chuyển nó vào chuỗi.format vì $ "{0}" trả về "0".
Về mặt ghi chú, tôi đã đọc một bình luận trong một tpoic trùng lặp khác. Tôi không thể bình luận, vì vậy, đây là. Anh ấy nói rằng
string msg = n + " sheep, " + m + " chickens";
tạo nhiều hơn một đối tượng chuỗi. Điều này thực sự không đúng. Nếu bạn làm điều này trong một dòng duy nhất, nó chỉ tạo một chuỗi và được đặt trong bộ đệm chuỗi.
1) string + string + string + string;
2) string.format()
3) stringBuilder.ToString()
4) $""
Tất cả chúng trả về một chuỗi và chỉ tạo một giá trị trong bộ đệm.
Mặt khác:
string+= string2;
string+= string2;
string+= string2;
string+= string2;
Tạo 4 giá trị khác nhau trong bộ đệm vì có 4 ";".
Do đó, việc viết mã như sau sẽ dễ dàng hơn, nhưng bạn sẽ tạo năm chuỗi nội suy khi Carlos Muñoz sửa:
string msg = $"Hello this is {myName}, " +
$"My phone number {myPhone}, " +
$"My email {myEmail}, " +
$"My address {myAddress}, and " +
$"My preference {myPreference}.";
Điều này tạo ra một chuỗi trong bộ đệm trong khi bạn có mã rất dễ đọc. Tôi không chắc chắn về hiệu suất, nhưng, tôi chắc chắn MS sẽ tối ưu hóa nó nếu chưa làm điều đó.