我知道插值表达式是语法糖,等价于
如果我有一个方法:
string.Format()
,但它在使用字符串格式化方法时是否有特殊的行为/识别能力呢?如果我有一个方法:
void Print(string format, params object[] parameters)
并使用插值对其进行以下调用:
Print($"{foo} {bar}");
以下哪个调用行最类似于字符串插值的编译结果?
Print(string.Format("{0} {1}", new[] { foo, bar }));
Print("{0} {1}", new[] { foo, bar });
问题的原因:像NLog这样的日志框架通常会推迟字符串格式化,直到确定将实际写入日志消息时才执行。一般来说,我更喜欢字符串插值语法,但我需要知道它是否会带来额外的性能损失。
String.Format
已经一样安全或不安全了?只要以类似的方式记录,我认为这里没有问题。 - James ThorpeString.Format
有同样的问题,但希望人们不会那样做。而Print($"{foo} {bar}");
是有问题的。 - SLaks