Πίνακας περιεχομένων:
Βίντεο: Raiding a Woodland Mansion in Minecraft - Part 15 2024
Με τον Bill Sempf, τον Chuck Sphar, τον Stephen R. Davis
Αν υπάρχει κάποιο πρόβλημα με το. NET Framework από την προοπτική του προγραμματιστή C #, είναι απλά ότι υπάρχουν πάρα πολλά καλά πράγματα. Πολλές τάξεις έχουν τόσα πολλά ακίνητα και γεγονότα που είναι δύσκολο να θυμηθούμε ποια είναι τα πιο χρησιμοποιούμενα πράγματα. Εδώ είναι η κρέμα της καλλιέργειας στην συλλογή, Connfiguration, και Async τάξεις, όλα μαζί για εύκολη αναφορά.
Κρατώντας Stuff σε C # Κλάσεις Συλλογής
Πολλές μεταβλητές είναι για την αποθήκευση ενός πράγματος, όπως ένας αριθμός ή μια πρόταση. Ένα αντικείμενο μπορεί να έχει πολλές ιδιότητες, αποθηκεύοντας πολλές πληροφορίες σχετικά με μια ενιαία έννοια. Μερικές φορές, όμως, πρέπει να παρακολουθείτε μια μεγάλη λίστα με πράγματα. Αυτές είναι οι τάξεις συλλογής που εισέρχονται.
Οι κλάσεις συλλογής στο C # είναι φοβερό, επειδή μπορούν να σας βοηθήσουν να διατηρήσετε μια λίστα αντικειμένων ή μια ομάδα κλειδιών και αξιών και να παρέχετε δωρεάν εργαλεία αναζήτησης, προβολής και γενικής συντήρησης. Αυτό είναι πολύ πιο εύκολο από το γράψιμο των δύο εκατοντάδων «ταξινομημένων πελατών με τη μέθοδο του επώνυμου» αυτού του μήνα.
Το C # έχει βασικές κατηγορίες συλλογής, γενικές κατηγορίες συλλογής και ταυτόχρονες κατηγορίες συλλογής. Αυτά τα τελευταία είναι για ασφαλείς λειτουργίες με νήματα σε περιβάλλον πολλαπλών επεξεργαστών. Όλες αυτές οι κατηγορίες συλλογής είναι χρήσιμες αν ξέρετε πού και πότε να τις χρησιμοποιήσετε.
Τακτικές συλλογές
Οι τακτικές συλλογές αποθηκεύουν τα αόρατα υλικά για εσάς. Εάν δεν ξέρετε ακριβώς τι πρόκειται να αποθηκεύσετε, οι τακτικές συλλογές είναι για εσάς. Τα περισσότερα από αυτά τα είδη αποθηκεύονται ως Object.
Αυτή είναι μια απλή συλλογή αντικειμένων των οποίων το αρχικό μέγεθος
δεν μειώθηκε).
συνδεδεμένα για την ταξινόμηση μιας ανάκτησης.
πράξεων επεξεργασίας προγράμματος.
Γενικές συλλογές
C # 2. 0 εισήγαγαν γενικές συλλογές. Οι γενικές συλλογές σάς επιτρέπουν να αποθηκεύετε δακτυλογραφημένες συλλογές αντικειμένων, όπως δηλώνονται κατά το χρόνο εκτέλεσης.
Κλάση | Περιγραφή |
---|---|
Λεξικό | Μόνο ένα HastTable, εκτός από την πληκτρολόγηση, έτσι δεν χρειάζεται να αποθηκεύετε
Object, Object. Το TKey και το TValue είναι τύποι, ώστε να μπορείτε να αποθηκεύσετε μια λίστα εάν θέλετε . |
Λίστα | Αυτός είναι ο νέος πίνακας. Είναι ένας πληκτρολογημένος κατάλογος αντικειμένων. Μέχρι , η πιο συνηθισμένη κλάση συλλογής που χρησιμοποιήθηκε. Είναι η προεπιλογή.
Αν χρειάζεστε μια λίστα ανθρώπων, είναι μια λίστα. |
Queue | Παρόμοια με την άτυπη Queue, αλλά, και καλά, πληκτρολογήσαμε! |
SortedList | Αυτό το τρομερό λεξικό εφαρμόζει το IComparable έτσι ώστε να μπορεί να ταξινομηθεί
. |
Στοίβα | Ακριβώς όπως και το unyped Stack, εκτός από την πληκτρολόγηση. |
Τρέχουσες κατηγορίες συλλογής
Τέλος, οι κλάσεις Concurrent εξασφαλίζουν ότι τα αντικείμενα που αποθηκεύετε σε μια λίστα είναι διαθέσιμα σε οποιοδήποτε χώρο μνήμης, ανεξάρτητα από τον επεξεργαστή. Είναι μεγαλύτερη υπόθεση από ό, τι νομίζετε.
Κλάση | Περιγραφή |
---|---|
BlockingCollection | Είναι μια κλάση ασφαλής για νήματα που θα εμποδίσει ένα νήμα
να τροποποιήσει ένα πεδίο που είναι προσβάσιμο από ένα άλλο νήμα. Λαμπρό πράγμα, πραγματικά. |
ConcurrentDictionary |
Μιλώντας για λαμπρό, αυτό το σύνολο ζευγών κλειδιού / τιμής μπορεί να είναι
προσπελάσιμο από πολλαπλά νήματα. |
ConcurrentQueue | Να θυμάστε ότι η στοίβα FIFO; Ναι. Αυτό είναι γενικό και νήμα
ασφαλές. |
ConcurrentStack | Οι ενορχηστρωμένες συλλογές είναι χρήσιμες. Είναι
ευεργετικά για τη μνήμη, για ένα πράγμα. Τέλος πάντων, αυτό είναι και το LIFO και το ασφαλές για τα νήματα. |
Ρύθμιση C #
Ένα ολόκληρο πεδίο ονομάτων των κλάσεων έχει σχεδιαστεί για να ρυθμίζει τις εφαρμογές που έχουν γραφτεί σε οποιαδήποτε. NET γλώσσα, όπως C #, VB. NET, ή κάποιον από πολλούς άλλους. Τα αντικείμενα μέσα σε αυτό είναι, τουλάχιστον, λίγο δύσκολο να πλοηγηθεί. Η διαμόρφωση στις εφαρμογές. NET πραγματοποιείται σε ένα. config αρχείο. Αυτό το μορφοποιημένο αρχείο XML έχει έναν κόμβο και ένα ολόκληρο σύνολο ειδικών κόμβων του έργου. Η αναφορά στις ρυθμίσεις παραμέτρων απαιτεί μια κλήση στο OpenExeConfiguration.
Σύστημα. Διαμόρφωση. Διαμόρφωση config = ConfigurationManager. OpenExeConfiguration ();
Μόλις γίνει αυτό, η αναφορά σε μια ενότητα είναι αρκετά απλή. Η μέθοδος GetSection παίρνει απλά μια συμβολοσειρά που είναι το όνομα κόμβου και επειδή το αρχείο ρυθμίσεων είναι απλά κείμενο, μπορείτε να το πάρετε ανά πάσα στιγμή.
var sectionName = & ldquo; Οτιδήποτε! & rdquo;. Σύστημα. Διαμόρφωση. Τμήμα AppSettingsSection = (Σύστημα Διαμόρφωση. AppSettingsSection) config. GetSection (sectionName);
Μπορείτε να προσθέσετε ενότητες στο αρχείο ρυθμίσεων χρησιμοποιώντας τα εργαλεία χειρισμού XML στο πλαίσιο. Μπορείτε να χρησιμοποιήσετε μια προκαθορισμένη ομάδα σε τμήματα για την αντίστοιχη λειτουργικότητα.
Ενότητα | Περιγραφή |
---|---|
Εκκίνηση | Περιγράφει το. NET έκδοση που θα χρησιμοποιηθεί. |
Διάρκεια εκτέλεσης | Εμφανίζει τη λίστα. Στοιχεία NET που δεσμεύουν το εκτελέσιμο αρχείο. |
Δίκτυο | Περιγράφει τις ρυθμίσεις διακομιστή μεσολάβησης και άλλες ρυθμίσεις δικτύου. |
Κρυπτογραφία | Ένας χώρος για να διατηρούνται προσβάσιμες τιμές που αναφέρονται στους πόρους κρυπτογράφησης |
Διαμόρφωση | Το πιο χρησιμοποιούμενο τμήμα. Εκεί διατηρείτε προσαρμοσμένες ενότητες του αρχείου ρυθμίσεων. |
Trace / Debug | Δύο ρυθμίσεις που σας επιτρέπουν να ρυθμίσετε την ανίχνευση και την καταγραφή. |
Ρυθμίσεις εφαρμογών (appsettings) | Εφαρμογή σε αντικείμενα όπως συνδέσεις βάσης δεδομένων βάσεων δεδομένων. |
Ρυθμίσεις ιστού (διαδικτυακές ρυθμίσεις) | ASP. NET συγκεκριμένες λεπτομέρειες. |
Προγραμματισμός ασύγχρονα
Πολλά Windows 8 είναι σχετικά γρήγορα και ρευστά. Ο τρόπος για να γίνει αυτό είναι με τη χρήση ασύγχρονων μεθόδων σε επανάκλησης από λειτουργίες long run.Το πρόβλημα με αυτό είναι ότι στο C #, ο καλύτερος τρόπος για την εφαρμογή μιας ασύγχρονης μεθόδου είναι με σπείρωμα. Αλλά δεν μπορείτε πάντοτε να εξαρτάται από το πότε θα επιστρέψουν τα στοιχεία από μια λειτουργία σπειρώματος. Πρέπει να υπάρχει κάποιος έλεγχος εάν θέλετε οι χρήστες να μπορούν να αισθάνονται ότι υπάρχει κάποιος έλεγχος.
Πληκτρολογήστε async και περιμένετε. async χρησιμοποιείται για να δηλώσει μια ασύγχρονη λειτουργία, η οποία επιστρέφει μια εργασία. Όλες οι μέθοδοι ασύγχυνσης πρέπει να περιέχουν τουλάχιστον μία αναμονή έκφρασης. περιμένετε να πει το C # να λάβει τον αναφερόμενο κώδικα και να το εκτελέσει σε ξεχωριστό νήμα από το νήμα του χρήστη. Ο πίνακας καταρρίπτει τα νέα ασύγχρονα μέρη της γλώσσας.
Δήλωση | Περιγραφή |
---|---|
async | Ένας τροποποιητής που εμφανίζει τον μεταγλωττιστή ότι η λειτουργία που τροποποιεί
είναι ασύγχρονη. |
περιμένει | Ένας χειριστής που αναστέλλει την εκτέλεση της μεθόδου που περιέχει
μέχρι να ολοκληρωθεί η αναμενόμενη εργασία. |
Εργασία | Αντιπροσωπεύει μια ασύγχρονη λειτουργία. |
Εργασία | Μια ασύγχρονη λειτουργία που επιστρέφει μια τιμή. |
Εργασία. Συνέχεια Με | Μια συνέχεια που ξεκινά μετά την ολοκλήρωση της ενέργειας στην εργασία
. |