2017-02-15 93 views
2

我正在使用VS 2015与Resharper Ultimate作为Win Forms应用程序,并且正在做一些简单的设置按钮的文本属性,当我在字符串下方看到蓝色波浪线时。为什么Resharper在这里给我一个'Localizable Interpolated String'提示?

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

此外,只是插入相同的字符串设置为另一个字符串似乎工作正常。这个字符串中没有字符可以转义。这里发生了什么事?

enter image description here

回答

4

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

至于为什么它显示为WinForms属性扭曲,但不为字符串:请参阅a webhelp article关于“Localizable inspector”属性。如果您想要得到所有字符串的建议,则需要将“Localizable inspector”值更改为“悲观”

+0

谢谢。这回答了我所有的问题。 – Ash

1

要设置一个UI元素的文本字符串,UI应该受到定位。

另一方面,插值相当于只使用默认格式提供程序调用string.Format

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

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

+0

感谢您的回答,但如果是这种情况,如何添加逐字运算符'@ @ '删除图像最后一行所示的UI本地化需求? – Ash

+0

我猜想ReSharper在使用逐字运算符时无法看到字符串未被本地化。如上所述,问题仍然存在,这只是工具是否能够提出警告的问题。 –

相关问题