Python 的字串格式化語法允許按名稱而不是位置進行格式化,使開發人員能夠直接在格式字串中使用變數名稱。然而,在 C# 中,內建的 String.Format 不支援此功能。
要在 C# 中實作命名字串格式化,您可以使用反射或範本實作自己的方法解析技術。
使用反思:
string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);
使用模板解析:
Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);
改良方法:
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(); } }
用法:
var formattedString = new FormattedString("{foo} is {bar} and {yadi} is {yada}"); Console.WriteLine(formattedString.FormatWith(new { foo = "alpha", bar = "beta", yadi = "gamma", yada = "delta" }));
隨著 2015 年 C# 6 的發布,字串插值是作為允許命名字串格式化的內建功能引入的。語法類似上面討論的自訂方法:
$"{{some_variable}}: {{some_other_variable}}"
以上是C# 中如何實作命名字串格式化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!