|
|
Δημοσιεύτηκε στις 28/1/2019 4:03:40 μ.μ.
|
|
|
|

1. Τι είναι το γενόσημο;
Τα γενόσημα είναι νέα σύνταξη που εισήχθη στο C# 2.0, όχι ζάχαρη σύνταξης, αλλά χαρακτηριστικά που παρέχονται από αναβαθμίσεις πλαισίου στο 2.0.
Όταν προγραμματίζουμε προγράμματα, συναντάμε συχνά ενότητες με πολύ παρόμοιες λειτουργίες, αλλά χειρίζονται διαφορετικά δεδομένα. Αλλά δεν έχουμε άλλη επιλογή από το να γράψουμε πολλές μεθόδους ξεχωριστά για να χειριστούμε διαφορετικούς τύπους δεδομένων. Αυτή τη στιγμή, το ερώτημα είναι, υπάρχει τρόπος να χρησιμοποιηθεί η ίδια μέθοδος για την αντιμετώπιση διαφορετικών τύπων παραμέτρων; Η εμφάνιση γενόσημων φαρμάκων έχει σχεδιαστεί ειδικά για την επίλυση αυτού του προβλήματος.
2. Γιατί να χρησιμοποιήσετε γενόσημα
Ας ρίξουμε μια ματιά στο παρακάτω παράδειγμα:
Έκβαση:
Από τα παραπάνω αποτελέσματα, μπορούμε να δούμε ότι αυτές οι τρεις μέθοδοι έχουν τις ίδιες λειτουργίες εκτός από τις διαφορετικές παραμέτρους που περνούν. Την εποχή της έκδοσης 1.0, δεν υπήρχε η έννοια των γενόσημων, οπότε τι να κάνουμε. Πιστεύω ότι πολλοί άνθρωποι θα σκεφτούν την κληρονομικότητα ενός από τα τρία κύρια χαρακτηριστικά του OOP, γνωρίζουμε ότι στη C#, το αντικείμενο είναι η βασική κλάση όλων των τύπων και ο παραπάνω κώδικας βελτιστοποιείται ως εξής:
Έκβαση:
Από τα παραπάνω αποτελέσματα, μπορούμε να δούμε ότι η χρήση του τύπου Object ικανοποιεί τις απαιτήσεις μας και λύνει την επαναχρησιμοποίηση του κώδικα. Μερικοί άνθρωποι μπορεί να ρωτήσουν γιατί είναι δυνατόν να περάσει σε int, string κ.λπ. όταν ορίζεται ως τύπος αντικειμένου; Υπάρχουν δύο λόγοι:
1. Ο τύπος αντικειμένου είναι η γονική κλάση όλων των τύπων.
2. Μέσω της κληρονομικότητας, οι υποκλάσεις έχουν όλα τα χαρακτηριστικά και τις συμπεριφορές της γονικής κλάσης και όπου εμφανίζεται η γονική κλάση, μπορεί να αντικατασταθεί από υποκλάσεις.
Αλλά η παραπάνω μέθοδος τύπου αντικειμένου φέρνει ένα άλλο πρόβλημα: η πυγμαχία και η αποσυσκευασία μπορούν να μειώσουν την απόδοση του προγράμματος.
Η Microsoft εισήγαγε γενόσημα σε C# 2.0, τα οποία μπορούν να λύσουν πολύ καλά τα παραπάνω προβλήματα.
3. Γενικές παράμετροι τύπου
Σε έναν γενικό τύπο ή ορισμό μεθόδου, μια παράμετρος τύπου είναι ένα σύμβολο κράτησης θέσης που καθορίζεται από τον πελάτη για έναν συγκεκριμένο τύπο όταν δημιουργεί μια μεταβλητή του γενικού τύπου. Η γενική κλάση (GenericList<T>) δεν μπορεί να χρησιμοποιηθεί ως έχει επειδή δεν είναι αληθινός τύπος. Είναι περισσότερο σαν ένα σχέδιο για τύπους. Για να χρησιμοποιήσετε το GenericList<T>, ο κώδικας πελάτη πρέπει να δηλώσει και να δημιουργήσει έναν τύπο κατασκευής καθορίζοντας την παράμετρο τύπου μέσα σε γωνιακές αγκύλες. Το όρισμα τύπου για τη συγκεκριμένη κλάση μπορεί να είναι οποιοσδήποτε τύπος που αναγνωρίζει ο μεταγλωττιστής. Μπορείτε να δημιουργήσετε οποιονδήποτε αριθμό παρουσιών τύπου construct, η καθεμία με διαφορετική παράμετρο τύπου.
Ο κώδικας στο παραπάνω παράδειγμα μπορεί να τροποποιηθεί ως εξής:
Κλήση:
Εμφάνιση αποτελεσμάτων:
|
Προηγούμενος:Πάροχοι αρχείων .NET CoreΕπόμενος:Όνομα βάσης δεδομένων MySQL, όνομα πίνακα και ερώτημα ονόματος πεδίου
|