我正在制作一个bool
返回值的方法,我遇到了问题:
这有效
private bool CheckAll()
{
//Do stuff
return true;
}
但是这不是,如果它在IF语句中,该方法无法检测到返回值。
private bool CheckAll()
{
if (...)
{
return true;
}
}
我该如何解决这个问题?
答案 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;