I was making a method with a bool
return value and I had a problem:
This works
private bool CheckAll()
{
//Do stuff
return true;
}
But this dosn't, the method can't detect a return value if it's in a IF-statement.
private bool CheckAll()
{
if (...)
{
return true;
}
}
How can I fix this?
This question is related to
c#
if-statement
return
private bool CheckAll()
{
if ( ....)
{
return true;
}
return false;
}
When the if-condition is false the method doesn't know what value should be returned (you probably get an error like "not all paths return a value").
As CQQL pointed out if you mean to return true when your if-condition is true you could have simply written:
private bool CheckAll()
{
return (your_condition);
}
If you have side effects, and you want to handle them before you return, the first (long) version would be required.
Long version:
private bool booleanMethod () {
if (your_condition) {
return true;
} else {
return false;
}
}
But since you are using the outcome of your condition as the result of the method you can shorten it to
private bool booleanMethod () {
return your_condition;
}
A simpler way to explain this,
public bool CheckInputs(int a, int b){
public bool condition = true;
if (a > b || a == b)
{
condition = false;
}
else
{
condition = true;
}
return condition;
}
You are missing the else portion. If all the conditions are false then else will work where you haven't declared and returned anything from else branch.
private bool CheckALl()
{
if(condition)
{
return true
}
else
{
return false
}
}
Use this code:
public bool roomSelected()
{
foreach (RadioButton rb in GroupBox1.Controls)
{
if (rb.Checked == true)
{
return true;
}
}
return false;
}
I'm sure neither of these options were available in C# when you asked the question but nowadays you can do it like the following:
// 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;
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;
}
}
this how I solved my problem
Source: Stackoverflow.com