为什么Resharper会给我一个可本地化的插值字符串'暗示在这里?

时间:2017-02-15 11:47:53

标签: c# visual-studio visual-studio-2015 resharper c#-6.0

我使用VS 2015与Resharper Ultimate进行Win Forms应用程序,当我看到字符串下面的蓝色波浪线时,正在做一些简单的设置按钮的文本属性。

点击它会将语句转换为我在问题陈述下方重新输入的语句,并且没有蓝色波浪形。请注意,它有逐字和插值运算符。

此外,只使用插值将相同的字符串设置为另一个字符串似乎工作正常。这个字符串中没有要逃避的字符。这里发生了什么?

enter image description here

2 个答案:

答案 0 :(得分:4)

至于逐字字符串:取消“ReSharper |选项|代码编辑| C#|本地化|不分析逐字字符串”复选框,然后ReSharper将向您显示逐字字符串的这种建议。

至于为什么它显示WinForms属性的波形但不是字符串:请参考a webhelp article关于“Localizable inspector”属性。如果您想获得所有字符串的建议,您需要将“Localizable inspector”值更改为“Pessimistic”

答案 1 :(得分:2)

您正在将UI元素的文本设置为字符串,并且UI应该进行本地化。

另一方面,插值相当于只使用默认格式提供程序调用{​​{1}}。

假设将从资源填充UI元素,并且将使用特定文化格式化它们。这就是为什么ReSharper对字符串插值的特殊用法很敏感的原因。

关于为插值字符串设置不同的字符串,然后将其分配给UI元素,您只是在ReSharper上玩技巧。它无法推断您已将UI元素分配给未本地化的字符串,但问题仍然存在。