【发布时间】:2015-02-04 05:26:24
【问题描述】:
几分钟前我在 C# 中整理了一些东西并编写了以下代码行:
private void ReportCheckState( String message , bool state ) {
( ( NovaEngineEditor )this.Parent ).EditorStatusBar.ShowMessage( ( message += state ? " Enabled." : " Disabled." ) );
}
令我惊讶的是,Resharper 显然认为变量“消息”的附加不会用于任何执行路径。然而,事实并非如此。它已被使用并且按预期工作。那么我真的找到了比 Resharper 更聪明的方法吗?这是一个屏幕截图(注意灰色文本):
这是表单上显示的最终输出的图像;它确实可以正常工作!
【问题讨论】:
-
好的,它确实工作正常,新字符串实际上已经形成,但是您没有在
ReportCheckState方法中的其他任何地方使用此值,所以您得到了您所得到的。 -
将其更改为
+而不是+=。+=将值附加到字符串变量。由于您稍后不会在代码中使用此变量,因此它是多余的。 -
你的代码应该是:
message + (state ? " Enabled." : " Disabled.)"编辑:@alexw:比我快 9 秒 ;p -
我猜 R# 试图说
+的一部分+=的结果是有用的,但赋值返回不是(在你的代码中就是这种情况 - 你从不使用 @987654331 的值稍后@自己) -
@alexw 好的,我明白了。所以这不是一个错误。该死的,我有点印象深刻。 =P
标签: c# resharper-9.0