我正在制作一个带有bool
返回值的方法,但遇到了问题:
这有效
private bool CheckAll()
{
//Do stuff
return true;
}
但这不是,如果返回值在 IF 语句中,则该方法无法检测到返回值。
private bool CheckAll()
{
if (...)
{
return true;
}
}
我怎样才能解决这个问题?
我正在制作一个带有bool
返回值的方法,但遇到了问题:
这有效
private bool CheckAll()
{
//Do stuff
return true;
}
但这不是,如果返回值在 IF 语句中,则该方法无法检测到返回值。
private bool CheckAll()
{
if (...)
{
return true;
}
}
我怎样才能解决这个问题?
private bool CheckAll()
{
if ( ....)
{
return true;
}
return false;
}
当 if 条件为 false 时,该方法不知道应该返回什么值(您可能会收到类似“并非所有路径都返回值”的错误)。
正如CQQL 指出的那样,如果你的意思是在你的 if 条件为真时返回真,你可以简单地写:
private bool CheckAll()
{
return (your_condition);
}
如果您有副作用,并且想在返回之前处理它们,则需要第一个(长)版本。
长版:
private bool booleanMethod () {
if (your_condition) {
return true;
} else {
return false;
}
}
但是由于您使用的是您的条件的结果作为方法的结果,您可以将其缩短为
private bool booleanMethod () {
return your_condition;
}
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;
}
}
这就是我解决问题的方法
一种更简单的解释方式,
public bool CheckInputs(int a, int b){
public bool condition = true;
if (a > b || a == b)
{
condition = false;
}
else
{
condition = true;
}
return condition;
}
您缺少其他部分。如果所有条件都为假,那么 else 将在您尚未声明并从 else 分支返回任何内容的情况下工作。
private bool CheckALl()
{
if(condition)
{
return true
}
else
{
return false
}
}
使用此代码:
public bool roomSelected()
{
foreach (RadioButton rb in GroupBox1.Controls)
{
if (rb.Checked == true)
{
return true;
}
}
return false;
}
我敢肯定,当您提出问题时,这些选项在 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;