最近在C#6中引入了一个名为字符串插值的新语言元素/句法糖。
然而,在享受了这种语法的甜蜜味道几分钟后,很快就会发现,由于嵌入了变量,插值字符串(从语义角度来看仍然是字符串文字)无法重构为资源只存在定义插值字符串的范围。
例如,此范围锁定的字符串文字无法进行本地化,无论本地化需求如何,一些代码质量检查器都会将字符串文字视为代码气味。
使用庞大的企业代码库我希望出现越来越多的内插字符串,因此问题将很快从理论变为实际。我想要两个
任何建议
答案 0 :(得分:2)
启用代码分析可防止使用插值字符串(警告CA1305),因为它们不支持指定区域设置(与String.Format
不同)。因此,虽然有点尴尬,但这可能是您特定案例的可能解决方案。
此外,R#可以快速将一种格式转换为另一种格式 - 因此,虽然Code Analysis和R#的自动组合不会让您快速查找并部分纠正所有情况。
答案 1 :(得分:1)
使用字符串插值可以进行本地化。
考虑一下:
System.FormattableString s = $"Hello, {name}";
s.ToString()将使用当前文化来生成字符串。
float flt = 3.141;
System.IFormattable s = $"{flt}";
使用IFormattable,您可以根据特定语言更改数字格式
所以 可能,而不是直接。
源: