>Hi everybody,
>
>I am wondering what are good ways of avoiding multiple return points and yet not being caught in multiple if /else complex logic.
>
>Is it OK to return early? I think in C# it's a normal practice, but what if I need to format output? E.g. at the bottom of each method I have
>
>String returnMessage = Base.GetReturnString(errorValue, statusCode, messageText);
> Logging.Log("Returning " + returnMessage, 2);
>
> return returnMessage;
>
>So, should I put these 3 lines in its own method and just do
>
>return LogAndReturn(errorValue, statusCode, messageText);
>
>every time I need to exit the procedure earlier?
Whilst I agree with John and Bill that 'one exit point' is a good general rule it certainly shouldn't be treated as a dictat and does not always make for more readable (or effficient) code. Use multiple returns. Or even goto: if it works :-}
Delegates can also be a good solution