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

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

[Πηγή] Πρέπει να εφαρμοστεί ο τύπος διεπαφής ή μεθόδου που μπορεί να διασχιστεί με το foreach.

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 26/9/2015 10:37:46 π.μ. | | |
Απάντηση: Τα αντικείμενα που μπορούν να διασχίσουν το foreach πρέπει να είναι αντικείμενα συλλογής ή πίνακα, τα οποία είναι του τύπου που υλοποιεί την υπερδιεπαφή IEnumerator ή τη δηλωμένη μέθοδο GetEnumerator
Q:
Αλλά όταν συνήθως χρησιμοποιώ το foreach in, το χρησιμοποιώ απευθείας και δεν υπάρχει πρόβλημα. Μπορώ να ρωτήσω, γιατί συμβαίνει αυτό; Εάν θέλετε να εφαρμόσετε τον τύπο της υπερδιεπαφής IEnumerator ή τη δηλωμένη μέθοδο GetEnumerator όπως αναφέρεται στην ερώτηση, τι πρέπει να κάνετε; Ευχαριστώ
Απάντηση: Όταν χρησιμοποιούμε το foreach in, συνήθως χρησιμοποιούμε μια κλάση συλλογής που ορίζεται από το σύστημα (υλοποιώντας τη διεπαφή ICollection). Για παράδειγμα, arrayList, stringDictionary, array, κ.λπ. Αυτά συσκευάζονται από την πλατφόρμα και είναι κοντά στην εφαρμογή της διεπαφής IEnumerator. Για να μπορεί η κλάση που γράφετε ταυτόχρονα, πρέπει να εφαρμόσετε τη διεπαφή κατά τη σύνταξη της τάξης. Αυτό επιτρέπει τη διέλευση του καθενός στη συνέχεια. Για παράδειγμα, ορίστε μια κατηγορία ατόμων και εφαρμόστε τη διεπαφή IEnumerator. Εάν υπάρχει ένας πίνακας People[] tempPeople, τότε μπορείτε να χρησιμοποιήσετε: foreach( p in tempPeople){ console.writeline(p.name); Αυτό εξαλείφει το πρόβλημα της χρήσης για βρόχους. Όσο για τον τρόπο υλοποίησης της διεπαφής Iemumerator. Απλώς ελέγξτε το MSDN. Μπορείτε επίσης να αναζητήσετε ένα πιο χοντρό βιβλίο.





Προηγούμενος:Ερωτήσεις αλγορίθμου συνέντευξης 1, 1, 2, 3, 5, 8, 13, 21, 34...... μάθετε ποιο είναι το 30ο ψηφίο και χρησιμοποιήστε έναν αναδρομικό αλγόριθμο για να μάθετε
Επόμενος:Ποια είναι η προέλευση των μαύρων νεφών που ξέσπασαν από το Ctrip και άλλες διαρροές;
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com