>>>>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)
> {
> // First Error here
> }
> 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.
I rarely have multiple nested if elses.... I use method calls that perform one function and return one value.