Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Multiple return points - is it OK practice?
Message
De
01/02/2013 16:32:13
John Baird
Coatesville, Pennsylvanie, États-Unis
 
 
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Versions des environnements
Environment:
C# 4.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Divers
Thread ID:
01564936
Message ID:
01564966
Vues:
63
This message has been marked as a message which has helped to the initial question of the thread.
>>>>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.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform