Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pemformatan Rentetan Dinamakan Boleh Dicapai dalam C#?
Sintaks pemformatan rentetan Python membenarkan pemformatan mengikut nama dan bukannya kedudukan, membolehkan pembangun menggunakan nama pembolehubah terus dalam rentetan format. Dalam C#, walau bagaimanapun, String.Format terbina dalam tidak menyokong ciri ini.
Untuk mencapai pemformatan rentetan bernama dalam C#, anda boleh melaksanakan kaedah anda sendiri menggunakan refleksi atau templat teknik menghurai.
Menggunakan Refleksi:
string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);
Menggunakan Penghuraian Templat:
Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);
Kaedah Yang Diperbaiki:
public class FormattedString { private readonly string _template; public FormattedString(string template) { _template = template; } public string FormatWith(object o) { var type = o.GetType(); var props = type.GetProperties(); return _template.Replace("{PropertyName}", prop.GetValue(o)) .Replace("{propertyName}", prop.GetValue(o)) .ToString(); } }
Penggunaan:
var formattedString = new FormattedString("{foo} is {bar} and {yadi} is {yada}"); Console.WriteLine(formattedString.FormatWith(new { foo = "alpha", bar = "beta", yadi = "gamma", yada = "delta" }));
Dengan keluaran C# 6 pada 2015, interpolasi rentetan diperkenalkan sebagai ciri terbina dalam yang membenarkan pemformatan rentetan dinamakan. Sintaks menyerupai kaedah tersuai yang dibincangkan di atas:
$"{{some_variable}}: {{some_other_variable}}"
Atas ialah kandungan terperinci Bagaimanakah Pemformatan Rentetan Dinamakan Boleh Dicapai dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!