bool返回的方法

时间:2012-09-27 15:15:21

标签: c# if-statement return

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

这有效

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

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

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

我该如何解决这个问题?

7 个答案:

答案 0 :(得分:21)

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

    return false;
}

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

作为CQQL pointed out,如果你的意思是在if条件为真时返回true,你可以简单地写一下:

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

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

答案 1 :(得分:2)

长版:

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

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

private bool booleanMethod () {
    return your_condition;
}

答案 2 :(得分: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;
        }
    }

这是我如何解决我的问题

答案 3 :(得分:1)

这就是你将如何解决它

    public  bool checkinputs(int a, int b){
        bool condition = true;
        if (a > b) {

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

            condition = false;
        } else {
            condition = true;
        }

            return condition;

    }

答案 4 :(得分:0)

你错过了其他部分。如果所有条件都是假的,那么否则将在你尚未声明并从其他分支返回任何内容的地方起作用。

private bool CheckALl()
{
  if(condition)
  {
    return true
  }
  else
  {
    return false
  }
}

答案 5 :(得分:-1)

使用此代码:

public bool roomSelected()
{
    foreach (RadioButton rb in GroupBox1.Controls)
    {
        if (rb.Checked == true)
        {
            return true;
        }
    }
    return false;
}

答案 6 :(得分:-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;