Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 20054|Απάντηση: 0

[Πηγή] Γρήγορη κατανόηση των προηγμένων εννοιών C# (1) Ανάθεση αντιπροσώπων

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 19/1/2017 3:18:00 μ.μ. | | | |
Ασχολούμαι με την ανάπτυξη .NET εδώ και πολύ καιρό και πρόσφατα εξέτασα το βιβλίο "C# Advanced Programming". Διαπίστωσα ότι πολλά προβλήματα που κάποτε φαινόταν να καταλαβαίνω αλλά δεν καταλάβαινα μπορούν στην πραγματικότητα να μελετηθούν και να κατανοηθούν σιγά σιγά.

Έτσι, σκοπεύω να αρχίσω να γράφω μια ανάρτηση ιστολογίου για τη «Σειρά Προηγμένου Προγραμματισμού C#». Θα βασιστεί στην ιδέα του βιβλίου "C# Advanced Programming" και θα αναφέρεται επίσης στις αναρτήσεις ιστολογίου άλλων ειδικών, ελπίζω να καταλαβαίνετε. Αν κάτι δεν πάει καλά, παρακαλώ διορθώστε το.

(Επίσης: Αυτή η ανάρτηση ιστολογίου δεν θα εξηγήσει τα βασικά των ορισμών και της γραμματικής.) )



Ας μιλήσουμε για τη θέση σε λειτουργία.

Το Delegate χρησιμοποιείται ευρέως στο .NET. Θα εμπλέκονται εκφράσεις λάμδα, εκδηλώσεις, μέθοδοι ανωνυμίας κ.λπ.

Τι είναι λοιπόν η ανάθεση;

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

Ας ορίσουμε μια βασική ανάθεση:





Αποτελέσματα εκτέλεσης:
Βλέπετε το παραπάνω πρακτικό μέρος για να εμπιστευτείτε; ΔηλαδήΈνας πληρεξούσιος μπορεί να εκτελέσει οποιαδήποτε μέθοδο με τον ίδιο τύπο παραμέτρου πρόσληψης και τύπο επιστροφής, ή ακόμα και μια ουρά μεθόδου με την ίδια υπογραφή.

Επομένως, οι υπογραφές της μεθόδου μας (δηλαδή οι παράμετροι εισαγωγής και εξόδου) πρέπει πραγματικά να είναι ακριβώς οι ίδιες με τον πληρεξούσιο; Απάντηση: Όχι, δεν μπορούμε να αγνοήσουμε τη συνδιακύμανση και την αντίστροφη διακύμανση.
Ας παρουσιάσουμε εν συντομία τη γνώση της συνμεταβλητής και του μετατροπέα.

«Συνδιακύμανση» σημαίνει ότι μπορείς να χρησιμοποιήσεις έναν τύπο που είναι πιο παράγωγος από τον αρχικά καθορισμένο παράγωγο τύπο.
Ο όρος "Inverter" αναφέρεται στη δυνατότητα χρήσης ενός τύπου με μικρότερο βαθμό παραγωγής.
Στη συνέχεια, η προμήθεια μας υπόκειται επίσης σε συνδιακύμανση και αντίστροφη.

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

Το παρακάτω είναι ένα απλό παράδειγμα συναλλοίωτης έναντι μετατροπέα:

Συνδιακύμανση:

Μετατροπέας:







Προηγούμενος:Σχεδιασμός MFC
Επόμενος:Πώς να μάθετε ποια διαδικασία PID είναι κατειλημμένο ένα αρχείο
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com