我正在使用VS 2015和Resharper Ultimate用于Win Forms应用程序,当我看到字符串下面的蓝色波浪线时,我正在做一些简单的事情,比如设置按钮的text属性。
单击它会将语句转换为我在有问题的语句下面重新键入的语句,并且没有蓝色的曲线。请注意,它有逐字和插值运算符。
此外,将同一个字符串设置为另一个字符串,只需插值似乎工作正常。此字符串中没有可转义的字符。这是怎么回事
的数据
我正在使用VS 2015和Resharper Ultimate用于Win Forms应用程序,当我看到字符串下面的蓝色波浪线时,我正在做一些简单的事情,比如设置按钮的text属性。
单击它会将语句转换为我在有问题的语句下面重新键入的语句,并且没有蓝色的曲线。请注意,它有逐字和插值运算符。
此外,将同一个字符串设置为另一个字符串,只需插值似乎工作正常。此字符串中没有可转义的字符。这是怎么回事
的数据
3条答案
按热度按时间6ojccjat1#
对于逐字字符串:取消勾选“ReSharper|选项|代码编辑|C#语言|本地化|不要分析逐字字符串”复选框,然后ReSharper将向您展示逐字字符串的这种建议。
至于为什么它显示wiggle为WinForms属性,但不为字符串:请参考a webhelp article关于“Localizable inspector”属性。如果您也想获得所有字符串的建议,则需要将“Localizable inspector”值更改为“Pessimistic”
xlpyo6sf2#
您正在将UI元素的文本设置为字符串,并且UI应进行本地化。
另一方面,插值相当于使用默认格式提供程序调用
string.Format
。假设UI元素将从资源填充,并且将使用特定区域性设置其格式。这就是为什么ReSharper对字符串插值的这种特殊使用很敏感。
你所说的为插值字符串设置一个不同的字符串,然后将其分配给UI元素,你只是在ReSharper上玩把戏。它无法推断您已将UI元素分配给未本地化的字符串,但问题仍然存在。
bqujaahr3#
我在VS2022版本17.6.4和ReSharper 2023.1.3中遇到了同样的问题。 Alexandria ·库拉金的解决方案对我不起作用
我也不想改变插入的字符串:
$"..."
转换为逐字插值:$@"..."
的值。我的解决方案是取消检查:“ReSharper|选项|代码检查|检查严重度|C#语言|潜在的代码质量问题|元素可本地化”
注意,对于我来说,像这样的字符串只是日志的消息,而不是UI的消息。