8 Stimmen

Was ist vorzuziehen: verschachtelte If's oder Exit Sub / Funktion?

Kürzlich habe ich auf Legacy vb.net-Code arbeiten und während Code Peer Review wurde empfohlen, nicht zu verwenden Exit Sub / Funktion, sondern um alle Funktionen in IF-Anweisungen zu verschachteln.

Als ich anfing zu entwickeln, habe ich es instinktiv so gemacht (Nest the IF's), es schien nicht nur logischer, sondern auch weniger verwirrend.

Irgendwann arbeitete ich jedoch mit einem Team zusammen, das verschachtelte IFs als "böse" betrachtete, und so wurde mir gesagt, dass Exit subs / functions bevorzugt würden. Ich bin mir ziemlich sicher, dass sie einige MS-Best-Practice-Materialien erstellt haben, um dies zu bestätigen.

Diese Frage richtet sich also an erfahrene Entwickler: Welcher Weg ist wirklich vorzuziehen? Wenn Sie eine Antwort geben, geben Sie bitte auch Ihre Quellen an, oder erwähnen Sie einfach, dass Ihr Team / Ihr Unternehmen / Ihre Person dies bevorzugt, und nennen Sie die Gründe.

Vielen Dank im Voraus.

EDIT wie gewünscht: Code-Beispiele

Exit Sub :

Private Sub DoSomeWork()
 if not conditionMetFromAnotherFunction() then
      exit Sub 
 end if

 'Method work starts here
End Sub

Verschachtelte IFs:

Private Sub DoSomeWork()
 if conditionMetFromAnotherFunction() then
     'Method work starts here
 end if
End Sub

1voto

pingoo Punkte 2064

IMO verschachtelte if's sind ein sehr schneller Weg zu schrecklichem Spaghetti-Code. Im Allgemeinen gesprochen, wenn Ihr tief verschachtelt Sie Code dann Ihre versuchen, zu viel Arbeit in Ihrer Methode zu tun und höchstwahrscheinlich wird von Refactoring in kleinere Teile profitieren.

Allerdings lässt sich dies manchmal nicht vermeiden, so dass es keine einheitliche Antwort für alle gibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X