C# 这行代码对Resharper来说是否太高级了?
几分钟前,我正在用C编写一些东西,并编写了以下代码行:C# 这行代码对Resharper来说是否太高级了?,c#,resharper-9.0,C#,Resharper 9.0,几分钟前,我正在用C编写一些东西,并编写了以下代码行: private void ReportCheckState( String message , bool state ) { ( ( NovaEngineEditor )this.Parent ).EditorStatusBar.ShowMessage( ( message += state ? " Enabled." : " Disabled." ) ); } 令我惊讶的是,Resharper显然
private void ReportCheckState( String message , bool state ) {
( ( NovaEngineEditor )this.Parent ).EditorStatusBar.ShowMessage( ( message += state ? " Enabled." : " Disabled." ) );
}
令我惊讶的是,Resharper显然认为变量消息的附加不会在任何执行路径中使用。然而,事实并非如此。它已被使用,并按预期工作。那么,我真的找到了比Resharper更聪明的方法了吗?以下是显示灰色文本的屏幕抓图:
这是表单上显示的最终输出的图像;它确实工作正常
我们来破解密码 消息+=状态?已启用。:残疾人 与 消息=消息+状态?已启用。:残废的 分配是多余的,因为您不再使用消息变量 你真的想要吗
消息+状态?已启用。:残废的 好的,它确实工作正常,新字符串实际上已形成,但您不会在ReportCheckState方法中的任何其他位置使用此值,因此您将得到您得到的值。将其更改为+而不是+=。++=将值追加到字符串变量。由于您以后没有在代码中使用此变量,因此它是多余的。您的代码应该是:message+state?已启用。:残废编辑:@alexw:比我快9秒;pI guess R试图说+=的+部分的结果是有用的,但赋值返回并不是有用的,这在代码中是这样的-您永远不会使用消息本身的值later@alexw好的,我明白了。所以它不是一个bug。该死,有一分钟我有点印象深刻=P@TyCobb要使该声明发挥作用,必须铸造该声明。