Então, eu estou programando há alguns anos e recentemente comecei a usar o ReSharper mais. Uma coisa que o ReSharper sempre me sugere é "inverter 'se' para reduzir o aninhamento".
Digamos que eu tenho esse código:
foreach (someObject in someObjectList)
{
if(someObject != null)
{
someOtherObject = someObject.SomeProperty;
}
}
E o ReSharper sugerirá que eu faça isso:
foreach (someObject in someObjectList)
{
if(someObject == null) continue;
someOtherObject = someObject.SomeProperty;
}
Parece que o ReSharper SEMPRE sugere que eu inverta os IFs, não importa quanto aninhamento esteja acontecendo. Esse problema é que eu meio que gosto de aninhar em pelo menos algumas situações. Para mim, parece mais fácil ler e descobrir o que está acontecendo em certos lugares. Nem sempre é esse o caso, mas às vezes me sinto mais confortável ao aninhar.
Minha pergunta é: além da preferência pessoal ou legibilidade, existe um motivo para reduzir o aninhamento? Existe uma diferença de desempenho ou outra coisa que eu possa não estar ciente?