我使用VS 2015与Resharper Ultimate进行Win Forms应用程序,当我看到字符串下面的蓝色波浪线时,正在做一些简单的设置按钮的文本属性。
点击它会将语句转换为我在问题陈述下方重新输入的语句,并且没有蓝色波浪形。请注意,它有逐字和插值运算符。
此外,只使用插值将相同的字符串设置为另一个字符串似乎工作正常。这个字符串中没有要逃避的字符。这里发生了什么?
答案 0 :(得分:4)
至于逐字字符串:取消“ReSharper |选项|代码编辑| C#|本地化|不分析逐字字符串”复选框,然后ReSharper将向您显示逐字字符串的这种建议。
至于为什么它显示WinForms属性的波形但不是字符串:请参考a webhelp article关于“Localizable inspector”属性。如果您想获得所有字符串的建议,您需要将“Localizable inspector”值更改为“Pessimistic”
答案 1 :(得分:2)
您正在将UI元素的文本设置为字符串,并且UI应该进行本地化。
另一方面,插值相当于只使用默认格式提供程序调用{{1}}。
假设将从资源填充UI元素,并且将使用特定文化格式化它们。这就是为什么ReSharper对字符串插值的特殊用法很敏感的原因。
关于为插值字符串设置不同的字符串,然后将其分配给UI元素,您只是在ReSharper上玩技巧。它无法推断您已将UI元素分配给未本地化的字符串,但问题仍然存在。