如果语句仅包含 "True"
If Statement Contains Only "True"
我正在将一个 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
如果您需要我提供任何其他信息以帮助我获得答案,请告诉我。
这很可能是过去删除的条件的结果。 IE。 if
中曾经有一个条件,但现在没有了。您应该检查源代码管理历史以了解对该行的更改。
在这种情况下,您可以删除整个 if
语句以进行重写。此外,C# 可能会抱怨并非所有代码路径 return 来自方法的值。
你说得对,伙计,vb6 中的代码 if(true) 什么都不做。继续你的代码
这不对,我认为 else 语句应该在外部匹配其父项。否则 if (true) 之前是别的东西并且出于调试原因被留在那里为 true
if (true) 在那种情况下没有任何意义,但似乎 else 是异常捕获或 OnError。
在 C# 中,您应该只在此处使用 try/catch。
之前有人认为必须做验证:
//check the Pointer value to see if engineRunning, or already in Mode
可能是尚未开发的需求。
if (true)
表示总是,类似于:
if (1 == 1)
我正在将一个 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
如果您需要我提供任何其他信息以帮助我获得答案,请告诉我。
这很可能是过去删除的条件的结果。 IE。 if
中曾经有一个条件,但现在没有了。您应该检查源代码管理历史以了解对该行的更改。
在这种情况下,您可以删除整个 if
语句以进行重写。此外,C# 可能会抱怨并非所有代码路径 return 来自方法的值。
你说得对,伙计,vb6 中的代码 if(true) 什么都不做。继续你的代码
这不对,我认为 else 语句应该在外部匹配其父项。否则 if (true) 之前是别的东西并且出于调试原因被留在那里为 true
if (true) 在那种情况下没有任何意义,但似乎 else 是异常捕获或 OnError。
在 C# 中,您应该只在此处使用 try/catch。
之前有人认为必须做验证:
//check the Pointer value to see if engineRunning, or already in Mode
可能是尚未开发的需求。
if (true)
表示总是,类似于:
if (1 == 1)