Heim >Backend-Entwicklung >C++ >Wie kann eine benannte String-Formatierung in C# erreicht werden?
Pythons Zeichenfolgenformatierungssyntax ermöglicht die Formatierung nach Namen statt nach Position, sodass Entwickler Variablennamen direkt in Formatzeichenfolgen verwenden können. In C# unterstützt das integrierte String.Format diese Funktion jedoch nicht.
Um eine benannte String-Formatierung in C# zu erreichen, können Sie Ihre eigene Methode mithilfe von Reflektion oder Vorlage implementieren Analysetechniken.
Verwenden Reflexion:
string myString = "{foo} is {bar} and {yadi} is {yada}".Inject(o);
Vorlagenparsing verwenden:
Status.Text = "{UserName} last logged in at {LastLoginDate}".FormatWith(user);
Eine verbesserte Methode:
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(); } }
Verwendung:
var formattedString = new FormattedString("{foo} is {bar} and {yadi} is {yada}"); Console.WriteLine(formattedString.FormatWith(new { foo = "alpha", bar = "beta", yadi = "gamma", yada = "delta" }));
Mit der Veröffentlichung von C# 6 im Jahr 2015 wurde die String-Interpolation als integrierte Funktion eingeführt, die eine benannte String-Formatierung ermöglicht. Die Syntax ähnelt den oben besprochenen benutzerdefinierten Methoden:
$"{{some_variable}}: {{some_other_variable}}"
Das obige ist der detaillierte Inhalt vonWie kann eine benannte String-Formatierung in C# erreicht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!