Así que he estado programando durante algunos años y recientemente he comenzado a usar ReSharper más. Una cosa que ReSharper siempre me sugiere es "invertir la instrucción 'if' para reducir el anidamiento".
Digamos que tengo este código:
foreach (someObject in someObjectList)
{
if(someObject != null)
{
someOtherObject = someObject.SomeProperty;
}
}
Y ReSharper me sugerirá que haga esto:
foreach (someObject in someObjectList)
{
if(someObject == null) continue;
someOtherObject = someObject.SomeProperty;
}
Parece que ReSharper SIEMPRE sugerirá que invierta los IF, sin importar cuánto anidamiento esté ocurriendo. Este problema es que me gusta anidar al menos en ALGUNAS situaciones. Para mí es más fácil de leer y descubrir qué está pasando en ciertos lugares. Este no es siempre el caso, pero a veces me siento más cómodo anidando.
Mi pregunta es: además de la preferencia personal o la legibilidad, ¿hay alguna razón para reducir la anidación? ¿Hay alguna diferencia de rendimiento o alguna otra cosa que no conozca?