Код: Выделить всё
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));
}
}
}
Однако во втором вызове метода, который использует интерполированную строку, форматирование строки уже выполняется до того, как метод будет вызван, даже если IsloggingEnabled < /code> является false. Было бы неплохо, чтобы форматирование строки было выполнено условно и при этом выиграть от читаемости, возникающей из интерполированной строки. Код> Параметры метода log () , указывающий, что они представляют строку формата так, чтобы журнал вызовов ($ "hello {name}!") будет Скомпилировано в log ("Привет {0}!", имя) , который будет иметь желаемый эффект?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ted-string
Мобильная версия