Ist es in C# möglich, die String -Formatierung einer interpolierten Zeichenfolge nur dann auszuführen, wenn er erforderlich ist? >
Code: Select all
public class Program
{
private static bool isLoggingEnabled = true;
public static void Main()
{
string name = "John";
Log("Hello {0}!", name);
Log($"Hello {name}!");
}
private static void Log(string formatString, params object?[] formatStringArguments)
{
if (isLoggingEnabled)
{
Console.WriteLine(string.Format(formatString, formatStringArguments));
}
}
}
Das erste log () Methode Call übergibt eine Format -Zeichenfolge. Daher wird das Zeichenfolge -Formatierung nur ausgeführt, wenn das iSLogge -Absatz -Flag wahr ist. falsch ist. Es wäre schön, die String -Formatierung bedingt erfolgen zu lassen und dennoch von der Lesbarkeit aus einer interpolierten Zeichenfolge zu profitieren. Code> Parameter der log () Methode, um anzuzeigen, dass sie eine Formatzeichenfolge darstellen, so dass das Anrufprotokoll ($ "Hallo {Name}!") wäre Kompiliert in log ("Hallo {0}!", Name) welches den gewünschten Effekt hat?