Sommario:
Video: Java Tutorial for Beginners [2019] 2024
Di Bill Sempf, Chuck Sphar, Stephen R. Davis
Se c'è qualche problema con il. NET Framework dal punto di vista del programmatore C #, è solo che ci sono troppe cose buone. Molte classi hanno così tante proprietà ed eventi che è difficile ricordare quali sono le cose più usate. Ecco la crema del ritaglio nelle classi Collection, Connfiguration e Async, tutte messe insieme per una facile consultazione.
Mantenere le cose nelle classi di raccolta C #
Molte variabili servono per memorizzare una cosa, come un numero o una frase. Un oggetto può avere molte proprietà, immagazzinando molte informazioni su un singolo concetto. A volte, però, devi solo tenere traccia di una grande lista di cose. Ecco dove arrivano le classi di raccolta.
Le classi di raccolta in C # sono fantastiche perché possono aiutarti a mantenere un elenco di elementi o un gruppo di chiavi e valori e a fornire gratuitamente strumenti di ricerca, proctoring e manutenzione generale. È molto più facile che scrivere il duecentesimo metodo "ordina per cognome" questo mese.
C # ha classi di raccolta di base, classi di raccolta generiche e classi di raccolta simultanee. Questi ultimi sono per operazioni thread-safe in un ambiente multiprocessore. Tutte queste classi di raccolta sono utili se sai dove e quando utilizzarle.
Collezioni regolari
Le collezioni regolari memorizzano le cose non classificate per te. Se non sai esattamente cosa stai per memorizzare, le raccolte regolari sono per te. La maggior parte di tutto in queste classi è memorizzata come Oggetto.
Classe | Descrizione |
---|---|
ArrayList | Questa è solo una semplice raccolta di oggetti la cui dimensione
è inizialmente dichiarata, e tale dimensione viene aumentata secondo necessità (ma non diminuito). |
HashTable | Solo una tabella a due colonne di chiavi e valori, in cui le coppie sono
collegate per l'ordinamento di un recupero. |
Coda | Un elenco di elementi primi, ultimi (FIFO). Ottimo per archiviare
processi di processo. |
Stack | Come una coda, ma Last in First Out (LIFO). |
Collezioni generiche
C # 2. 0 ha introdotto raccolte generiche. Le raccolte generiche consentono di archiviare raccolte di articoli digitate, come dichiarato in fase di esecuzione.
Classe | Descrizione |
---|---|
Dizionario | Solo un HastTable, tranne digitato, quindi non è necessario
memorizzare Oggetto, Oggetto. TKey e TValue sono tipi, quindi è possibile memorizzare un elenco se si desidera . |
Elenco | Questa è la nuova matrice. È una lista di articoli digitata. Per
lontano, la classe di raccolta più comune utilizzata. È l'impostazione predefinita. Se hai bisogno di un elenco di persone, è un elenco. |
Coda | Simile alla coda non tipizzata, ma, beh, digitata! |
SortedList | Questo fantastico dizionario implementa IComparable in modo che possa
essere ordinato. |
Stack | Proprio come lo Stack non tipizzato, eccetto che digitato. |
Classi di raccolta simultanee
Infine, le classi Concurrent assicurano che gli oggetti che archivi in un elenco siano disponibili in qualsiasi spazio di memoria, indipendentemente dal processore. È un affare più grande di quanto pensi.
Classe | Descrizione |
---|---|
BlockingCollection | È una classe thread-safe che impedirà ad un thread
di alterare un campo accessibile da un altro thread. Roba brillante, davvero. |
ConcurrentDictionary |
A proposito di brillante, questo insieme di coppie chiave / valore può essere
accessibile da più thread. |
ConcurrentQueue | Ricorda che lo stack FIFO? Si. Questo è generico E thread
sicuro. |
ConcurrentStack | Le raccolte orchestrate sono utili. Sono
benefici per la memoria, per una cosa. Comunque, anche questo è LIFO e thread-safe. |
Configurazione di C #
Un intero spazio dei nomi delle classi è progettato per configurare le applicazioni scritte in qualsiasi. Linguaggio NET, come C #, VB. NET, o uno dei tanti altri. Gli oggetti al suo interno sono, a dir poco, un po 'difficili da navigare. La configurazione in. NET si svolge in a. file di configurazione. Questo file in formato XML ha un nodo e un'intera gamma di nodi specifici del progetto all'interno. Ottenere un riferimento alla configurazione richiede una chiamata a OpenExeConfiguration.
Sistema. Configurazione. Configurazione config = ConfigurationManager. OpenExeConfiguration ();
Una volta fatto, ottenere un riferimento a una sezione è piuttosto semplice. Il metodo GetSection prende solo una stringa che è il nome del nodo e, poiché il file di configurazione è solo testo, è possibile afferrarlo in qualsiasi momento.
var sectionName = & ldquo; Qualunque cosa! & Rdquo;; Sistema. Configurazione. Sezione AppSettingsSection = (System. Configuration. AppSettingsSection) config. GetSection (nome_sezione);
È possibile aggiungere sezioni al file di configurazione utilizzando gli strumenti di manipolazione XML nel framework. È possibile utilizzare un gruppo predefinito su sezioni per la funzionalità corrispondente.
Sezione | Descrizione |
---|---|
Avvio | Descrive il. Versione NET da utilizzare. |
Runtime | Elenca il. Elementi NET da associare all'eseguibile. |
Rete | Descrive il proxy e altre impostazioni di rete. |
Crittografia | Un luogo per mantenere i valori accessibili facendo riferimento alle risorse crittografiche |
Configurazione | La sezione più utilizzata. È dove si mantengono sezioni personalizzate del file di configurazione. |
Trace / Debug | Due impostazioni che consentono di impostare la traccia e la registrazione. |
Impostazioni applicazione (app) | Cose con ambito applicativo come stringhe di connessione al database. |
Impostazioni Web (impostazioni Web) | ASP. Dettagli specifici NET. |
Programmazione asincrona
Un sacco di Windows 8 significa essere veloci e fluidi. Il modo per farlo è utilizzando metodi asincroni nei callback dalle funzionalità di lunga durata.Il problema con questo è che in C #, il modo migliore per implementare un metodo asincrono è con il threading. Ma non puoi sempre dipendere dal momento in cui torneranno gli oggetti da un'operazione di filettatura. Ci deve essere un po 'di controllo se vuoi che gli utenti siano in grado di sentirsi come se ci fosse un certo controllo.
Immettere async e attendere. async viene utilizzato per dichiarare una funzione asincrona, che restituisce un'attività. Tutti i metodi asincroni devono contenere almeno un'espressione di attesa. await dice a C # di prendere il codice riferito ed eseguirlo in un thread separato rispetto al thread dell'utente. Il tavolo scompone le nuove parti asincrone del linguaggio.
Istruzione | Descrizione |
---|---|
asincrona | Un modificatore che mostra al compilatore che la funzione che
modifica è asincrona. |
attende | Un operatore che sospende l'esecuzione del metodo
contenente fino al completamento dell'attività atteso. |
Attività | Rappresenta un'operazione asincrona. |
Attività | Un'operazione asincrona che restituisce un valore. |
Attività. ContinueWith | Una continuazione avviata dopo il completamento dell'operazione nell'attività
. |