Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει ο Διαχειριστής Μετατροπής;
Ένας χειριστής μετατροπής, στον C #, είναι ένας χειριστής που χρησιμοποιείται για να δηλώσει μια μετατροπή σε ένα καθορισμένο από τον χρήστη τύπο, έτσι ώστε ένα αντικείμενο αυτού του τύπου να μπορεί να μετατραπεί σε ή από άλλο τύπο χρήστη ή βασικό τύπο. Οι δύο διαφορετικοί τύποι μετατροπών που ορίζονται από το χρήστη περιλαμβάνουν σιωπηρές και ρητές μετατροπές.
Σε γενικές γραμμές, οι τελεστές ρητής και έμμεσης μετατροπής παρέχουν τη δυνατότητα σε μια κλάση να μεταφερθεί στους άλλους πιθανούς τύπους δεδομένων.
Ένας τελεστής ρητής μετατροπής πρέπει να καλείται με ένα cast και χρησιμοποιείται όταν η μετατροπή πρέπει να είναι ορατή στους χρήστες του χρήστη. Χρησιμοποιείται σε εκφράσεις χυτού, όπου οι δύο τύποι δεδομένων δεν είναι πλήρως συμβατοί και συνεπώς απαιτούν χειριστή χύτευσης.
Ένας μηχανισμός σιωπηρής μετατροπής είναι εύκολος στη χρήση. Δεν απαιτεί ειδική σύνταξη και βελτιώνει την αναγνωσιμότητα του κώδικα. Βοηθά επίσης μια τάξη να μετατρέπει τα δεδομένα ενός τύπου δεδομένων στον συμβατό τύπο χωρίς χύτευση τύπου. Το τεκμαρτό cast πρέπει να χρησιμοποιείται σε καταστάσεις όπως επικλήσεις και εντολές μελών λειτουργιών, όπου δεν υπάρχει κίνδυνος απώλειας δεδομένων ή εμφάνισης εξαιρέσεων.
Η Techopedia εξηγεί τον Διαχειριστή Μετατροπής
Μια σιωπηρή μετατροπή μπορεί να οριστεί για μια τάξη χρησιμοποιώντας τη λέξη-κλειδί "implicit" μαζί με τη λέξη-κλειδί "operator". Μια ρητή διαδικασία μετατροπής μπορεί να οριστεί για μια κλάση χρησιμοποιώντας τη λέξη-κλειδί "explicit" μαζί με τη λέξη-κλειδί "operator". Και οι δύο μετατροπές πρέπει να οριστούν ως στατικές.
Για παράδειγμα, μια κλάση, RomanNumeral, μπορεί να οριστεί με δύο φορείς μετατροπής. Ένας τελεστής σιωπηρής μετατροπής μπορεί να οριστεί για να μετατραπεί από την κλάση RomanNumeral σε συμβολοσειρά για την εμφάνιση ενός αριθμού σε μορφή ρωμαϊκού αριθμού. ο τελεστής ρητής μετατροπής μπορεί να οριστεί για να πραγματοποιήσει τη μετατροπή από την κλάση RomanNumeral σε ακέραιο.
Δεν επιτρέπεται η μετατροπή τύπου ή αντικειμένου κατηγορίας σε αντικείμενο. Το ίδιο ισχύει και για τη μετατροπή από την κλάση βάσης σε μια κλάση που προέρχεται από την κλάση βάσης.
Για μια δεδομένη κλάση, δεν μπορούν να οριστούν τόσο οι ρητοί όσο και οι σιωπηλοί τελεστές για τη μετατροπή από τον ίδιο τύπο στον άλλο.
Θα πρέπει να ληφθεί μέριμνα ώστε η σιωπηρή μετατροπή να μην έχει ως αποτέλεσμα απώλεια δεδομένων ή εξαίρεση. Εάν υπάρχουν βάσιμοι λόγοι για να γίνει εξαίρεση, η μετατροπή πρέπει να είναι σαφούς τύπου.
Ο ορισμός αυτός γράφτηκε στο πλαίσιο του C #