4

我正在制作一个带有bool返回值的方法,但遇到了问题:

这有效

private bool CheckAll()
{
  //Do stuff
  return true;
}

但这不是,如果返回值在 IF 语句中,则该方法无法检测到返回值。

private bool CheckAll()
{
  if (...)
  {
    return true;
  }
}

我怎样才能解决这个问题?

4

7 回答 7

29
private bool CheckAll()
{
    if ( ....)
    {
        return true;
    }

    return false;
}

当 if 条件为 false 时,该方法不知道应该返回什么值(您可能会收到类似“并非所有路径都返回值”的错误)。

正如CQQL 指出的那样,如果你的意思是在你的 if 条件为真时返回真,你可以简单地写:

private bool CheckAll()
{
    return (your_condition);
}

如果您有副作用,并且想在返回之前处理它们,则需要第一个(长)版本。

于 2012-09-27T15:18:15.103 回答
4

长版:

private bool booleanMethod () {
    if (your_condition) {
        return true;
    } else {
        return false;
    }
}

但是由于您使用的是您的条件的结果作为方法的结果,您可以将其缩短为

private bool booleanMethod () {
    return your_condition;
}
于 2012-09-27T15:20:06.743 回答
1
     public bool roomSelected()
    {
        int a = 0;
        foreach (RadioButton rb in GroupBox1.Controls)
        {
            if (rb.Checked == true)
            {
                a = 1;
            }
        }
        if (a == 1)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

这就是我解决问题的方法

于 2014-10-12T17:43:28.367 回答
1

一种更简单的解释方式,

public bool CheckInputs(int a, int b){
public bool condition = true;

if (a > b || a == b)
{
   condition = false;
}
else
{
   condition = true;
}

return condition;
}
于 2015-11-24T15:05:58.500 回答
0

您缺少其他部分。如果所有条件都为假,那么 else 将在您尚未声明并从 else 分支返回任何内容的情况下工作。

private bool CheckALl()
{
  if(condition)
  {
    return true
  }
  else
  {
    return false
  }
}
于 2017-02-16T17:39:11.017 回答
-1

使用此代码:

public bool roomSelected()
{
    foreach (RadioButton rb in GroupBox1.Controls)
    {
        if (rb.Checked == true)
        {
            return true;
        }
    }
    return false;
}
于 2015-11-14T17:10:41.830 回答
-1

我敢肯定,当您提出问题时,这些选项在 C# 中都不可用,但现在您可以这样做:

// Return with ternary conditional operator.
private bool CheckAll()
{
    return (your_condition) ? true : false;
}

// Alternatively as an expression bodied method.
private bool CheckAll() => (your_condition) ? true : false;
于 2020-09-03T14:35:16.713 回答