C # 5.0 All-in-One For Dummies

Viele Variablen sind für eine Sache zu speichern, wie eine Zahl oder einen Satz. Ein Objekt kann eine Menge von Eigenschaften haben, eine Menge von Informationen über ein Konzept zu speichern. Manchmal aber, man muss nur den Überblick über eine große Liste von Sachen zu halten. Das ist, wo die Sammlung Klassen kommen.

Die Collection-Klassen in C # sind genial, weil sie können Sie eine Liste der Elemente, oder eine Gruppe von Schlüsseln und Werten halten helfen und bieten Suche, proctoring und allgemeine Wartungstools kostenlos. Das ist viel einfacher, als in diesem Monat die zweihundertste 'sortieren Kunden nach Nachnamen' Methode zu schreiben.

C # hat grundlegende Collection-Klassen, allgemeine Collection-Klassen, und die gleichzeitige Sammlung Klassen. Diese letzten sind für Thread-sicheren Operationen in einer Multiprozessorumgebung. Alle diese Sammlung Klassen sind nützlich, wenn Sie wissen, wo und wann sie zu verwenden.

Regelmäßige Sammlungen

Regelmäßige Sammlungen speichern untypisierten Sachen für Sie. Wenn Sie nicht genau wissen, was Sie zu speichern gehen, sind regelmäßige Sammlungen für Sie. Fast alles, was in diesen Klassen werden als Objekt gespeichert.

KlasseBeschreibung
AnordnungslisteDies ist nur eine einfache Sammlung von Objekten, deren sizeis zunächst erklärt, und dass Größe erhöht wird, je nach Bedarf (butnot verringert).
Hash-tabelleNur eine zweispaltige Tabelle von Schlüsseln und Werten, wobei die Paare arelinked eine Abruf zum Sortieren.
WarteschlangeA first in, last out (FIFO) Liste der Elemente. Groß für storingprogram Prozess Sachen.
StapelWie eine Warteschlange, aber Last In First Out (LIFO).

Generika Sammlungen

C # 2.0 eingeführt generische Sammlungen. Generika Sammlungen können Sie typisierte Sammlungen von Gegenständen zu speichern, wie es zur Laufzeit erklärt.

KlasseBeschreibung
Wörterbuch Nur ein HastTable, mit Ausnahme eingegeben haben, so dass Sie sich nicht tostore Objekt, Objekt. TKey und TValue sind Typen, so dass Sie alist von wenn youwant speichern kann.
ListeDas ist das neue Array. Es ist eine typisierte Liste der Elemente. Byfar, die häufigste Sammlung Klasse verwendet. Es ist die default.If Sie eine Liste von Leuten brauchen, ist es eine Liste.
WarteschlangeÄhnlich wie bei der untypisierten Queue, aber, na ja, getippt!
SortedList Diese awesome Wörterbuch implementiert IComparable, so dass es sortiert canbe.
StapelGenau wie die untypisierten Stapel, außer getippt.

Concurrent Sammlung Klassen

Schließlich machen die Concurrent Klassen sicher, dass die Objekte, die Sie in einer Liste speichern, in jedem Speicherplatz verfügbar sind, egal zu welcher Prozessor. Es ist eine größere Sache, als Sie denken.

KlasseBeschreibung
BlockingEs ist ein Thread-sicher-Klasse, die ein threadfrom Verändern eines Feldes verhindern wird, dass von einem anderen thread.Brilliant Sachen zugänglich ist, wirklich.
ConcurrentDictionary Apropos brillant, dieser Satz von Schlüssel / Wert-Paare können von mehreren Threads beaccessed.
ConcurrentQueueDenken Sie daran, dass die FIFO-Stack? Ja. Dieses ist generisch und THREAD.
ConcurrentStackDie instrumentierte Sammlungen sind nützlich. They'rebeneficial für Speicher, für eine Sache. Wie auch immer, dies ist eine LIFO andthread sicher, auch.

Konfigurieren von C #

Eine ganze Namensraum von Klassen ist so konzipiert, in jeder .NET-Sprache wie C #, VB.NET, oder einer von mehreren anderen geschriebene Anwendungen zu konfigurieren. Die Objekte in ihm sind, gelinde gesagt, ein bisschen schwer zu navigieren. Die Konfiguration in .NET-Anwendungen erfolgt in einer CONFIG-Datei. Diese XML-formatierte Datei hat einen Knoten, und eine ganze Reihe von projektspezifischen Knoten innerhalb. einen Verweis auf die Konfiguration immer erfordert einen Aufruf OpenExeConfiguration.

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration () -

Sobald dies geschehen ist, einen Verweis auf einen Abschnitt bekommen ist ziemlich einfach. Das GetSection Verfahren dauert nur einen String, der den Knotennamen ist, und weil die Konfigurationsdatei nur Text ist, können Sie es jederzeit zu greifen.

var section = "Was auch immer!" - System.Configuration.AppSettingsSection section = (System.Configuration.AppSettingsSection) config.GetSection (section) -

Sie können Abschnitte der Konfigurationsdatei hinzufügen, um die XML-Bearbeitungstools im Rahmen verwenden. Sie können eine voreingestellte Gruppe auf Abschnitte für die entsprechende Funktionalität zu nutzen.

Abschnitt Beschreibung
AnfangBeschreibt die .NET-Version zu verwenden.
LaufzeitFührt die .NET-Elemente an die ausführbare Datei zu binden.
NetzwerkBeschreibt Proxy und andere Netzwerkeinstellungen.
GeheimschriftEin Ort, um zu erreichen Werte halten Krypto Ressourcen referenzieren
KonfigurationDie am häufigsten verwendete Abschnitt. Es ist, wo Sie benutzerdefinierte Abschnitte der Konfigurationsdatei halten.
Trace / DebugZwei Einstellungen, mit denen Sie Tracing und Protokollierung einzurichten.
Anwendungseinstellungen (appsettings)Anwendung scoped Dinge wie Datenbankverbindungszeichenfolgen.
Web-Einstellungen (websettings)ASP.NET spezifische Details.

Programmierung Asynchronously

Viele Windows 8 ist über schnell und flüssig zu sein. Die Art und Weise, dies zu tun, ist die Verwendung asynchronen Methoden in Rückrufe von langen Lauf Funktionalität. Das Problem dabei ist, dass in C #, der beste Weg, ein asynchrones Verfahren zu implementieren mit einem Gewinde ist. Aber man kann nicht immer davon abhängen, wenn die Elemente aus einem Schraubvorgang wird wiederkommen. Es braucht eine gewisse Kontrolle zu sein, wenn Sie die Benutzer wollen in der Lage sein, zu fühlen, wie es einige Kontrolle ist.

Eingeben einsynchronisieren und einwarte ab. einsynchronisieren eine asynchrone Funktion, die eine zu erklären, zurückgibt, verwendet Aufgabe. Alle async Verfahren müssen mindestens eine erwarten Ausdruck enthalten. erwarten sagt C # bezeichnet Code zu nehmen und es in einem separaten Thread als der Benutzer-Thread ausgeführt werden. Die Tabelle zeigt die neuen asynchronen Teile der Sprache nach unten.

ErklärungBeschreibung
asyncEin Modifikator, die den Compiler zeigt, dass die Funktion itmodifies ist asynchron.
erwartenEin Operator, der die Ausführung des containingmethod aussetzt, bis die erwartete Aufgabe abgeschlossen ist.
AufgabeStellt einen asynchronen Vorgang.
AufgabeEine asynchrone Operation, die einen Wert zurückgibt.
Task.ContinueWithEine Fortsetzung, die nach der Operation in der Taskis gestartet wird abgeschlossen.

Menü