Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει ο φορέας εκμετάλλευσης IS;
Ο χειριστής IS, στον C #, είναι ένας χειριστής που χρησιμοποιείται για να ελέγχει δυναμικά αν ένα αντικείμενο είναι συμβατό με ένα συγκεκριμένο τύπο.
Ενώ εργάζεστε με τύπους αναφοράς που περιλαμβάνουν βασικούς και προερχόμενους τύπους, καθίσταται απαραίτητη η μετατόπιση του αντικειμένου του τύπου βάσης στον παραγόμενο τύπο και στη συνέχεια να καλέσετε τη μέθοδο. Σε περίπτωση που το απλό cast από τον βασικό στον παράγωγο τύπο δεν είναι επιτυχής, έχει ως αποτέλεσμα να ρίχνει μια εξαίρεση. Ο χειριστής χρησιμοποιείται για να ελέγξει την επιτυχία της λειτουργίας χύτευσης χωρίς να προκαλέσει εξαίρεση. Είναι ένας αποτελεσματικός φορέας εκμετάλλευσης. Δεν ελέγχει μόνο για την ασφαλή και επιτυχημένη εκτύπωση ενός αντικειμένου, αλλά επίσης ανακτά την τιμή του cast σε ένα επιτυχημένο cast. Ωστόσο, χρησιμοποιείται συχνά στον κώδικα για τον προσδιορισμό του τύπου ενός αντικειμένου χωρίς καμία απαίτηση για λειτουργία χύτευσης.
Δεδομένου ότι ο χειριστής είναι πάντα επιστρέφει την τιμή Boolean (αληθής ή ψευδής) μετά τη λειτουργία εκτύπωσης και δεν κάνει ποτέ εξαίρεση, είναι εξαιρετικά αξιόπιστη η χρήση του σε έναν κώδικα εφαρμογής. Επιπλέον, επιτρέπει την επαλήθευση του τύπου ενός αντικειμένου με δεδομένο τύπο με απλούστερο τρόπο, γεγονός που μειώνει το μέγεθος του κώδικα και την προσπάθεια ανάπτυξης.
Η Techopedia εξηγεί τον IS Operator
Ο χειριστής είναι ένας χειριστής δοκιμής τύπου με δύο παραμέτρους, οι οποίοι περιλαμβάνουν μια έκφραση ενός τύπου αναφοράς. Ο τύπος αναφοράς πρέπει να ελεγχθεί για τη μετατροπή και ο τύπος προορισμού στον οποίο πρέπει να γίνει η έκφραση. Ο χειριστής επιστρέφει το true αν η δεδομένη έκφραση που αντιπροσωπεύει το αντικείμενο δεν είναι null και η έκφραση επιτυγχάνει τη μετάδοση στον καθορισμένο τύπο. Διαφορετικά, επιστρέφει ψευδές.
Ο χειριστής δεν μπορεί να υπερφορτωθεί για να παρέχει οποιαδήποτε άλλη σημασιολογία. Μπορεί να χρησιμοποιηθεί για τον έλεγχο των μετατροπών αναφοράς, πυγμαχίας και unboxing, αλλά όχι για μετατροπές που ορίζονται από το χρήστη. Αν και ο τύπος συμβατότητας της έκφρασης αξιολογείται κατά το χρόνο εκτέλεσης, ο μεταγλωττιστής C # παράγει μια προειδοποίηση κατά τη διάρκεια της σύνταξης, όταν ο χειριστής χρησιμοποιείται για τύπους που δεν είναι συμβατοί.
Για παράδειγμα, ο χειριστής μπορεί να χρησιμοποιηθεί για να ελέγξει κατά πόσο η παράμετρος που μεταβιβάστηκε σε μια μέθοδο είναι τύπου, Φοιτητής ή ο παραγόμενος τύπος όπου ο Φοιτητής είναι ένας τύπος που χρησιμοποιείται για να αναπαριστά τις πληροφορίες που σχετίζονται με τον φοιτητή σε μια εφαρμογή.
Ο χειριστής διαφέρει από τον τελεστή AS, διότι ο πρώτος έχει ως αποτέλεσμα να κάνει δύο εκμαγεία, ενώ ο τελευταίος αποφεύγει το διπλό cast σε ένα βήμα και συνεπώς η καλύτερη απόδοση επιτυγχάνεται με τη χρήση του χειριστή.
