我知道插值是语法糖string.Format(),但它是否有任何特殊的行为/识别何时与字符串格式化方法一起使用?
如果我有一个方法:
void Print(string format, params object[] parameters)
Run Code Online (Sandbox Code Playgroud)
以下使用插值调用它:
Print($"{foo} {bar}");
Run Code Online (Sandbox Code Playgroud)
以下哪个调用行最相当于字符串插值的编译结果?
Print(string.Format("{0} {1}", new[] { foo, bar }));
Print("{0} {1}", new[] { foo, bar });
Run Code Online (Sandbox Code Playgroud)
问题背后的推理:诸如NLog之类的记录框架通常会推迟字符串格式化,直到确定将实际写入日志消息为止.一般来说,我更喜欢字符串插值语法,但我需要知道它是否会产生额外的性能损失.
我有几个只读的RichTextBox用于记录输出.因为它们是只读的,所以当文本更新时它们似乎不会自动滚动.我可以使用TextChanged事件来强制滚动结束,但是不是简单地在XAML中设置属性或其他东西的方法,以便滚动像正常一样发生吗?
我正在努力更新序列化库,以添加对以可移植方式序列化浮点的支持。理想情况下,我希望能够在不支持 IEEE754 的环境中测试代码。使用软浮动库进行测试是否足够?或者关于如何正确测试代码的任何其他建议?
我有一段时间没有做过C++而且我的记忆很模糊,到目前为止我找不到确定的答案.我不是在讨论重新抛出捕获的异常,而是捕获一个异常并抛出不同的类型,例如:
std::unordered_map<int, int> foo;
...
int getFoo(int id)
{
try {
return foo.at(id);
}
catch (std::out_of_range& e)
{
throw MyMoreDescriptiveExceptionType();
}
}
Run Code Online (Sandbox Code Playgroud)