Inhaltsverzeichnis:
Video: ? Facebook Ads in 2019 | From Facebook Ads Beginner to EXPERT in One Video! 2024
Von Bill Sempf, Chuck Sphar, Stephen R. Davis
Wenn es irgendein Problem mit der. NET Framework aus der Perspektive des C # -Programmiers, es ist nur, dass es zu viel gutes Zeug gibt. Viele Klassen haben so viele Eigenschaften und Ereignisse, dass es schwierig ist sich daran zu erinnern, was das am meisten verwendete Zeug ist. Hier ist die Creme der Ernte in der Sammlung, Connfiguration und Async-Klassen, alle zusammen für eine einfache Referenz.
Dinge in C # -Untersuchungsklassen halten
Viele Variablen dienen zum Speichern einer Sache, wie einer Zahl oder eines Satzes. Ein Objekt kann viele Eigenschaften haben und viele Informationen über ein einzelnes Konzept speichern. Manchmal müssen Sie jedoch nur eine große Liste von Dingen im Auge behalten. An dieser Stelle kommen die Collection-Klassen ins Spiel.
Die Collection-Klassen in C # sind fantastisch, weil sie Ihnen helfen können, eine Liste von Elementen oder eine Gruppe von Schlüsseln und Werten zu behalten und kostenlos zu suchen, zu beaufsichtigen und zu pflegen. Das ist viel einfacher, als in diesem Monat die zweihundertste Methode "Kunden nach Nachnamen sortieren" zu schreiben.
C # verfügt über grundlegende Collection-Klassen, generische Collection-Klassen und Concurrent-Collection-Klassen. Diese letzten sind für Thread-sichere Operationen in einer Multiprozessor-Umgebung. Alle diese Collection-Klassen sind nützlich, wenn Sie wissen, wo und wann sie verwendet werden sollen.
Reguläre Sammlungen
Reguläre Sammlungen speichern untypisiertes Material für Sie. Wenn Sie nicht genau wissen, was Sie speichern möchten, sind regelmäßige Sammlungen für Sie. Fast alles in diesen Klassen wird als Object gespeichert.
Klasse | Beschreibung |
---|---|
ArrayList | Dies ist nur eine einfache Sammlung von Objekten, deren Größe
anfangs deklariert ist, und diese Größe wird bei Bedarf vergrößert (aber nicht verringert). |
HashTable | Nur eine zweispaltige Tabelle mit Schlüsseln und Werten, in der die Paare
verknüpft sind, um eine Suche zu sortieren. |
Warteschlange | Eine FIFO-Liste (first in, last out) von Elementen. Ideal zum Speichern von
Programmprozessen. |
Stapeln | Wie eine Warteschlange, aber als letztes zuerst heraus (LIFO). |
Generische Sammlungen
C # 2. 0 Einführung generischer Sammlungen. Mit generischen Sammlungen können Sie typisierte Sammlungen von Elementen speichern, die zur Laufzeit deklariert wurden.
Klasse | Beschreibung |
---|---|
Wörterbuch | Nur ein HastTable, außer typisiert, so dass Sie nicht
Objekt, Objekt speichern müssen. TKey und TValue sind Typen, so dass Sie eine Liste speichern können, wenn Sie wollen. |
Liste | Dies ist das neue Array. Es ist eine getippte Liste von Elementen. Bis
ist die am häufigsten verwendete Collection-Klasse. Es ist die Standardeinstellung. Wenn Sie eine Liste von Personen benötigen, handelt es sich um eine Liste. |
Warteschlange | Ähnlich wie bei der nicht typisierten Warteschlange, aber gut getippt! |
SortedList | Dieses tolle Wörterbuch implementiert IComparable, so dass es
sortiert werden kann. |
Stack | Genau wie der nicht typisierte Stack, außer getippt. |
Concurrent Collection-Klassen
Schließlich stellen die Concurrent-Klassen sicher, dass die Objekte, die Sie in einer Liste speichern, in jedem Speicherbereich verfügbar sind, egal welcher Prozessor. Es ist eine größere Sache als Sie denken.
Klasse | Beschreibung |
---|---|
BlockingCollection | Es handelt sich um eine threadsichere Klasse, die verhindert, dass ein Thread
ein Feld ändert, auf das ein anderer Thread zugreifen kann. Brillantes Zeug, wirklich. |
ConcurrentDictionary |
Apropos brillant: Auf diesen Satz von Schlüssel / Wert-Paaren kann
durch mehrere Threads zugegriffen werden. |
ConcurrentQueue | Denken Sie daran, dass der FIFO-Stack? Ja. Dieses ist generisch UND Thread
sicher. |
ConcurrentStack | Die orchestrierten Sammlungen sind nützlich. Sie sind
zum einen für das Gedächtnis nützlich. Wie auch immer, dieses ist LIFO und Thread-sicher. |
Konfigurieren von C #
Ein ganzer Namespace von Klassen dient zum Konfigurieren von Anwendungen, die in einem beliebigen Namensraum geschrieben sind. NET-Sprache wie C #, VB. NET oder einer von mehreren anderen. Die Objekte darin sind, gelinde gesagt, ein bisschen schwer zu navigieren. Die Konfiguration in.NET-Anwendungen erfolgt in a. Konfigurationsdatei. Diese XML-formatierte Datei hat einen Knoten und eine ganze Reihe von projektspezifischen Knoten darin. Um einen Verweis auf die Konfiguration zu erhalten, muss OpenExeConfiguration aufgerufen werden.
System. Aufbau. Konfigurationskonfiguration = ConfigurationManager. OpenExeConfiguration ();
Sobald dies erledigt ist, ist es ziemlich einfach, einen Verweis auf einen Abschnitt zu erhalten. Die GetSection-Methode verwendet nur eine Zeichenfolge, die der Knotenname ist, und da die Konfigurationsdatei nur aus Text besteht, können Sie sie jederzeit abrufen.
var Abschnittsname = & ldquo; Was auch immer! & rdquo;; System. Aufbau. Abschnitt AppSettingsSection = (Systemkonfiguration. AppSettingsSection) config. GetSection (Abschnittsname);
Sie können der Konfigurationsdatei Abschnitte hinzufügen, indem Sie die XML-Manipulationstools im Framework verwenden. Sie können eine voreingestellte Gruppe in Abschnitten für die entsprechende Funktionalität verwenden.
Abschnitt | Beschreibung |
---|---|
Start | Beschreibt das. NET-Version verwenden. |
Runtime | Listet die. NET-Elemente, die an die ausführbare Datei gebunden werden sollen. |
Netzwerk | Beschreibt Proxy- und andere Netzwerkeinstellungen. |
Kryptographie | Ein Ort, an dem auf Werte zugegriffen werden kann, die auf Kryptoressourcen verweisen |
Konfiguration | Der am häufigsten verwendete Abschnitt. Dort behalten Sie benutzerdefinierte Abschnitte der Konfigurationsdatei. |
Trace / Debug | Zwei Einstellungen, mit denen Sie Tracing und Protokollierung einrichten können. |
Anwendungseinstellungen (appsettings) | Anwendung hat Bereiche wie Datenbankverbindungszeichenfolgen definiert. |
Webeinstellungen (Websettings) | ASP. NET spezifische Details. |
Asynchron programmieren
Bei vielen Windows 8 geht es darum, schnell und flüssig zu sein. Dies wird durch die Verwendung asynchroner Methoden in Callbacks von lang laufenden Funktionen erreicht.Das Problem dabei ist, dass in C # der beste Weg zur Implementierung einer asynchronen Methode das Threading ist. Aber Sie können nicht immer davon abhängen, wann die Elemente von einem Threading-Vorgang zurückkommen werden. Es muss eine gewisse Kontrolle geben, wenn Sie möchten, dass die Benutzer in der Lage sind, das Gefühl zu haben, dass sie etwas Kontrolle haben.
Geben Sie async ein und warten Sie. Async wird verwendet, um eine asynchrone Funktion zu deklarieren, die eine Task zurückgibt. Alle Async-Methoden müssen mindestens einen await-Ausdruck enthalten. await weist C # an, den angegebenen Code zu übernehmen und in einem separaten Thread auszuführen, der nicht der Benutzer-Thread ist. Die Tabelle unterteilt die neuen asynchronen Teile der Sprache.
Statement | Beschreibung |
---|---|
async | Ein Modifizierer, der den Compiler anzeigt, dass die Funktion, die er
modifiziert, asynchron ist. |
wait | Ein Operator, der die Ausführung der enthaltenen
-Methode anhält, bis die erwartete Aufgabe abgeschlossen ist. |
Task | Stellt eine asynchrone Operation dar. |
Task | Eine asynchrone Operation, die einen Wert zurückgibt. |
Aufgabe. ContinueWith | Eine Fortsetzung, die gestartet wird, nachdem die Operation in der Task
abgeschlossen ist. |