我正在将vb6应用转换为c#,而且我遇到了一些我不太了解的内容。我从来没有见过if语句结构,其中被评估的表达式实际上是" true"或" false"。
private bool InitializeForProgramming() //OK
{
if (J1939.getReplyStatus() == modJ1939.dmOpFailed) //or OpComplete (dmBusy auto cycles)
{
//check the Pointer value to see if engineRunning, or already in Mode
if (true) //let it proceed *** ??
{
//nothing to do
}
else
{
lblCommun.Text = "ProgramMode Failed!";
lblCommun.ForeColor = Color.Red;
//could report more detailed reasons! (engineRunning, etc.)
return true; //FAILED!
}
}
这里用if(true)表达式评估什么?如果是真的?
这是原始的vb6代码:
Private Function InitializeForProgramming() As Boolean 'OK
If getReplyStatus = dmOpFailed Then 'or OpComplete (dmBusy auto cycles)
'check the Pointer value to see if engineRunning, or already in Mode
If (True) Then 'let it proceed *** ??
'nothing to do
Else
txtCommun.Text = "ProgramMode Failed!"
txtCommun.ForeColor = vbRed
'could report more detailed reasons! (engineRunning, etc.)
InitializeForProgramming = True 'FAILED!
Exit Function
End If
End If
如果您需要我提供其他任何内容以帮助我获得答案,请告诉我。
答案 0 :(得分:7)
这很可能是过去被删除的情况的结果。即曾经是if
中的一个条件,但不再是。{您应该检查源控件历史记录以获取对该行的更改。
在这种情况下,您可以删除整个if
语句以进行重写。此外,C#可能会抱怨并非所有代码路径都返回该方法的值。
答案 1 :(得分:1)
你是正确的人,如果(真实)在vb6中代码什么都不做。继续你的代码
答案 2 :(得分:1)
这可能不对,我认为 else 语句应该在其父级之外匹配。否则 if(true)之前是其他的东西,并且出于调试原因,那就是真的
答案 3 :(得分:1)
if(true)在这种情况下并不意味着什么,但似乎else是异常捕获或OnError。
在C#中你应该在这里使用try / catch。
答案 4 :(得分:1)
之前有人认为必须进行验证:
//check the Pointer value to see if engineRunning, or already in Mode
可能是尚未开发的要求。
if (true)
总是意味着,类似于:
if (1 == 1)