【问题标题】:If Statement Contains Only "True"If 语句仅包含“真”
【发布时间】:2015-02-25 14:37:22
【问题描述】:

我正在将一个 vb6 应用程序转换为 c#,但我遇到了一些我不太理解的东西。我从未见过一个 if 语句结构,其中被评估的表达式实际上是“真”或“假”。

    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

如果您需要我提供任何其他内容来帮助我获得答案,请告诉我。

【问题讨论】:

  • 我喜欢这条线InitializeForProgramming = True 'FAILED!

标签: c# if-statement vb6


【解决方案1】:

这很可能是过去删除的某个条件的结果。 IE。 if 曾经有一个条件,但现在没有了。您应该检查源代码管理历史记录以了解对该行的更改。

在这种情况下,您可以删除整个 if 语句以进行重写。此外,C# 可能会抱怨并非所有代码路径都从方法返回值。

【讨论】:

  • 加一。看起来很久以前有人做了一个快速破解。我注意到原始评论中的星星和问号。 let it proceed *** ??
【解决方案2】:

你走对了,vb6 中的 if(true) 代码什么都不做。继续使用您的代码

【讨论】:

    【解决方案3】:

    这是不对的,我认为 else 语句应该在与其父级匹配之外。否则,if (true) 之前是别的东西,出于调试原因,保留为 true

    【讨论】:

      【解决方案4】:

      在这种情况下,if (true) 没有任何意义,但似乎 else 是异常捕获或 OnError。

      在 C# 中,您应该在这里使用 try/catch。

      【讨论】:

        【解决方案5】:

        之前有人认为必须进行验证:

            //check the Pointer value to see if engineRunning, or already in Mode
        

        也许是尚未开发的需求。

        if (true) 
        

        表示总是,类似于:

        if (1 == 1)
        

        【讨论】:

          猜你喜欢
          • 2013-06-20
          • 1970-01-01
          • 2013-03-09
          • 1970-01-01
          • 1970-01-01
          • 2013-10-18
          • 1970-01-01
          • 1970-01-01
          • 2018-01-02
          相关资源
          最近更新 更多