Anscheinend geht es bei Ihrer Frage nicht darum, ob ein Kurzschluss im Allgemeinen gut oder schlecht ist, sondern darum, warum VB.NET Betreibern mit und ohne diesen Kurzschluss zur Verfügung stellt. In diesem Sinne die Antwort auf
Wann ist die Kurzschlussbewertung schlecht?
ist einfach: wenn es die Abwärtskompatibilität verletzt .
Ok, jetzt können Sie sagen, dass VB.NET nicht sehr abwärtskompatibel mit altem VB6 oder VBA ist, jedoch zumindest bestimmte Teile der Sprache. Die Entscheidung von Microsoft, die alte UND- und ODER-Semantik (ohne Kurzschluss) beizubehalten, führte dazu, dass beim Portieren alter VB-Programme nach VB.NET eine große Fehlerkategorie weniger wahrscheinlich auftrat.
Auf der anderen Seite haben VB.NET-Sprachdesigner wahrscheinlich Ihre Meinung darüber geteilt, dass Kurzschlüsse eine gute Sache sind. Wenn ich mich richtig erinnere, versorgten die ersten VB.NET-Vorabversionen AND- oder OR-Operatoren mit Kurzschlüssen, aber das Feedback der Entwickler muss so schlecht gewesen sein, dass MS diese Entscheidung zurückzog, bevor VB.NET 1.0 erschien. Daher haben die Designer beschlossen, es in Bezug auf neue Schlüsselwörter ANDALSO
und ORELSE
als Kompromiss zwischen Abwärtskompatibilität und Nützlichkeit zu implementieren .
IMHO war das eine gute Entscheidung. Ich musste im letzten Jahrzehnt mehrere ältere Programme portieren, und nicht für jeden logischen Ausdruck, einschließlich UND und / oder ODER (Wortspiel beabsichtigt), eine Analyse der Auswirkungen durchführen zu müssen, machte diese Aufgabe viel einfacher und wirtschaftlicher. Wenn ich andererseits einen neuen logischen Ausdruck in VB.NET schreiben muss, sind meine Standardauswahl für die Operatoren die Kurzschlussformen, wie ich es von C, C ++, C # usw. gewohnt bin, und es erlaubt Ich schreibe mehrere Redewendungen in prägnanterer Form (auch wenn ANDALSO 4 Zeichen mehr zum Tippen benötigt).
Wenn Sie nicht überzeugt sind, empfehle ich, Joel Spolskys großartigen Artikel über Martian Headsets zu lesen. Deshalb können frühe Entwurfsentscheidungen in der Softwareentwicklung nicht einfach widerrufen werden, nachdem die betreffende Komponente, Sprache oder API eine Benutzerbasis einer bestimmten Größe erreicht hat .