我试着在我们的产品的几个组件上运行FxCop,并且我得到了很多“指定IFormatProvider”规则的匹配。我应该总是指定使用哪一个IFormatProvider?
碰巧,其中一些是合法的,但它也符合这样的代码:
Logger.DebugFormat("Appending file {0}", fileName);
这可以写成
Logger.DebugFormat(CultureInfo.InvariantCulture, "Appending file {0}", fileName);
第二个变量是更难阅读。
那么,它实际上是否推荐总是指定IFormatProvider
还是“只是”规则中启发式的限制吗?
谢谢,这是一个明确的改进,但它不适用于我的记录器,因为界面超出了我的控制范围......而那些调用最让我恼火的是:)将此标记为正确答案,因为它到目前为止是最有用的。 –
InvariantText.Format和CulturedText.Format方法返回字符串。在您的示例中,您可以将记录器方法重写为Logger.DebugFormat(CulturedText.Format(“Appending file {0}”,fileName));'。 –
这实际上是一个非常好的主意。 +1。 – Joey