I should have created a local variable to store the result variable and return after the if statements. I just couldn’t help to make it look partially nice. My brain just doesn’t think at this high caliber of LOC optimizations.
New optimized LOC version:
internalstaticboolAreBooleansEqual(bool orig, bool val)
{
bool result;
if(orig)
{
if(val)
{
result = false;
}
else
{
result = true;
}
}
else
{
if(val)
{
result = true;
}
else
{
result = false;
}
}
return result;
}
Surely we could optimize the return value with a switch statement and store the result as an integer to hide the compiler warning about our clearly correct code:
internalstaticboolAreBooleansEqual(bool orig, bool val)
{
int result;
if(orig)
{
if(val)
{
result = 0;
}
else
{
result = 1;
}
}
else
{
if(val)
{
result = 1;
}
else
{
result = 0;
}
}
switch (result)
{
case(1):
returntrue;
case(0):
returnfalse;
default:
return AreBooleansEqual(orig, val);
}
}
Make the input variables nullable, then add checks if the values are null, then assign default values if they are, otherwise continue with the passed values.
I should have created a local variable to store the result variable and return after the if statements. I just couldn’t help to make it look partially nice. My brain just doesn’t think at this high caliber of LOC optimizations.
New optimized LOC version:
internal static bool AreBooleansEqual(bool orig, bool val) { bool result; if(orig) { if(val) { result = false; } else { result = true; } } else { if(val) { result = true; } else { result = false; } } return result; }
My previous LOC: 12
New LOC version: 27
Surely we could optimize the return value with a switch statement and store the result as an integer to hide the compiler warning about our clearly correct code:
internal static bool AreBooleansEqual(bool orig, bool val) { int result; if(orig) { if(val) { result = 0; } else { result = 1; } } else { if(val) { result = 1; } else { result = 0; } } switch (result) { case(1): return true; case(0): return false; default: return AreBooleansEqual(orig, val); } }
New LOC: 35
Make the input variables nullable, then add checks if the values are null, then assign default values if they are, otherwise continue with the passed values.