AndAlso και OrElse VB.NET βασικοί λογικοί χειριστές

Η έκφραση if δημιουργεί ένα σφάλμα "διαίρεσης κατά μηδέν" στο VB 6, επειδή το Value3 είναι μηδέν. (Αλλά δείτε το Γρήγορη συμβουλή για τη διαίρεση με μηδέν για περισσότερα σχετικά με αυτό.) Θα μπορούσε να είναι ότι οι περιπτώσεις που έχουν ως αποτέλεσμα το Value3 να είναι μηδέν είναι πολύ σπάνιες και εμφανίζονται μόνο όταν απολαμβάνετε διακοπές χιλιάδες μίλια μακριά, ώστε να μπορείτε να καλέσετε πίσω για να διορθώσετε το πρόγραμμα σε περίπτωση έκτακτης ανάγκης τρόπος. (Γεια σου! Συμβαίνει!)

Μετά την αλλαγή AndAlso, το πρόγραμμα λειτουργεί! Ο λόγος είναι ότι το τελευταίο μέρος της σύνθεσης Εάν η συνθήκη- (τιμή 2 \ value3) δεν υλοποιείται ποτέ. Όταν χρησιμοποιείτε το AndAlso, το VB.NET ξέρει ότι η έκφραση δεν μπορεί να επιτύχει όταν διαπιστωθεί ότι το πρώτο μέρος της συνθήκη-a δεν είναι μεγαλύτερο από Value1- είναι ψευδές. Έτσι, το VB.NET σταματά να αξιολογεί την έκφραση εκεί. Ένα παρόμοιο παράδειγμα θα μπορούσε να κατασκευαστεί χρησιμοποιώντας OrElse.

Αυτή η ανάλυση προτείνει επίσης πώς μπορείτε να προσθέσετε κάποια αποδοτικότητα στον κώδικα σας, οργανώνοντας σωστά μια σύνθετη λογική έκφραση. Εάν τοποθετήσετε την έκφραση που είναι πιθανότερο να είναι ψευδή στην αριστερή θέση όταν χρησιμοποιείτε AndAlso, μπορείτε να εμποδίσετε τους κύκλους εκτέλεσης να χρησιμοποιηθούν για να αξιολογήσετε την πλησιέστερη έκφραση. Σε μια μόνο δοκιμασία, δεν θα ήταν αρκετή για να αξίζει καν να σκεφτείς. Αλλά εάν η δοκιμή σας είναι μέσα σε ένα βρόχο κάποιου είδους και εκτελείται λίγες φορές, θα μπορούσε να κάνει μεγάλη διαφορά.

instagram viewer

instagram story viewer