Так что я программирую уже несколько лет, а недавно начал больше использовать ReSharper. Одна вещь, которую ReSharper всегда предлагает мне, - это «инвертировать» if, чтобы уменьшить вложенность ».
Допустим, у меня есть этот код:
foreach (someObject in someObjectList)
{
if(someObject != null)
{
someOtherObject = someObject.SomeProperty;
}
}
И ReSharper предложит мне сделать это:
foreach (someObject in someObjectList)
{
if(someObject == null) continue;
someOtherObject = someObject.SomeProperty;
}
Кажется, что ReSharper ВСЕГДА предложит мне инвертировать IF, независимо от того, сколько вложений происходит. Эта проблема в том, что я люблю вложенность, по крайней мере, в НЕКОТОРЫХ ситуациях. Мне кажется, легче читать и выяснять, что происходит в определенных местах. Это не всегда так, но иногда я чувствую себя более комфортно.
У меня вопрос: кроме личных предпочтений или читабельности, есть ли причина уменьшить вложенность? Есть ли разница в производительности или что-то еще, о чем я могу не знать?