>>>I have controller methods where sometimes I return a View and othertimes I RedirectToAction. So, two returns are required.
>>>
>>Right now I am working on the conversion of our VFP class library into C# dll. In VFP we checked parameters at the top and returned. There were also many other return exists in the methods.
>>
>>I already converted a few by not using early returns, but I think in general it should be OK - otherwise it's very hard to use if else if else nested logic.
>
>No its not....
>
>You set a variable. ... retVal ... you initialize it however you want, then in your flow, instead of returning, you assign the value to retVal and at the end you return retVal.
>
>I hate code with multiple return points and numerous out parameters. You cant test it and you end up with nothing but a spaghettie code mix...
But how do you navigate in all this if else code
E.g.
Int32 SomeValue;
If (!Int32.TryParse(SomeString, out SomeValue) || SomeValue = 0)
{
}
else
{ more code that may cause problems
if ...
}
}
In other words, it is very hard to keep track of all these if else and {}
BTW, I usually create several UnitTests per method - for invalid parameters, for some unreal values, etc.
If it's not broken, fix it until it is.
My Blog