重构遗留应用程序,Resharper标记了这个非常奇怪的代码:
if( retVal = Util.NetSendCommand( returnedCommands.command ) )
" retVal ="部分是灰色的;所以我假设我可以删除它。也许编写代码的人意味着是一个平等测试,但它按原样工作,所以我可以安全地删除那个" retVal ="正确的吗?
这里是上下文中的代码:
public bool PendingCommandsExecute_CCRCOMMAND()
{
bool retVal = false;
string theMessage = new string( '\x00', 1023 );
string command = "CCRCOMMAND";
try
{
if (returnedCommands.key != command) return false;
HashResultsAdd(command, "Started");
if( retVal = Util.NetSendCommand( returnedCommands.command ) )
{
Util.ReadFinishedChanged
+= new Util.ReadFinishedHandler( ReadFinished_HHTCOMMAND );
}
else
{
return false;
// CommandFailed
// ( command
// , ": Could not complete server handshaking \n"
// + "FAILURE - CCRCOMMAND!"
// );
}
}
catch (Exception ex)
{
PDAClient.NRBQ.ExceptionHandler(ex, "PendingCommands.PendingCommandsExecute.HHTCommand");
return false;
}
return true;
}
答案 0 :(得分:2)
请勿将其删除。它正在调用该方法,它只是不使用它返回的值。
答案 1 :(得分:1)
如果删除它并删除了retVal的声明,那么如果在别处使用retVal,编译器会抱怨。如果编译器没有抱怨,那么你应该没问题。
可能原始开发人员希望能够在调试时查看返回值。