在Visual Studio 2015年的IFormatProvider(CA1305)字符串插值字符串、插值、Studio、Visual

2023-09-04 02:34:57 作者:青树柠檬

在Visual Studio 2015年新的字符串插值的风格是这样的:

 暗淡S = $您好(名称)
 

但是,如果我用这个code分析告诉我,我打破 CA1305 :指定的IFormatProvider

在老的时候,我做了这样的:

 暗淡S =的String.Format(Globalization.CultureInfo.InvariantCulture,你好{0},名称)
 
Visual Studio 2015的产品功能

但怎么能与新的风格呢?

我要指出,我正在寻找一个解决方案,对于.NET 4.5.2(用于.NET 4.6 dcastro有答案)

解决方案

您会使用 System.FormattableString System.IFormattable 类:

  IFormattable IFS =(IFormattable)$你好,(名称);
System.FormattableString FSS = $您好,(名称);

//传递null要使用的格式,因为它是在初始化时使用以上。
字符串ifresult = ifs.ToString(空,CultureInfo.InvariantCulture);
字符串fsresult = fss.ToString(CultureInfo.InvariantCulture);
 

您必须编写针对框架4.6,为 IFromattable FormattableString 是不中不存在的类旧的版本。因此,如果您的目标较旧版本的.NET框架您不触发错误不能使用插语法。

除非你申请一个小黑客(适应编译免受乔恩斯基特的要点 4.6 RTM和的