Die Programmiersprache C# (Gewusst wie in C#)
Aktualisiert: November 2007
Dieses Thema enthält Links zu hilfreichen Informationen zu häufig verwendeten Aufgaben in der Programmiersprache C#. Informationen über weitere Kategorien gängiger Aufgaben, die in der Hilfe behandelt werden, finden Sie unter Gewusst wie in C#.
Die Programmiersprache C#
Neues bei Visual C#
Enthält Informationen zu neuen Sprachfeatures, wie beispielsweise Abfrageausdrücke, Auflistungsinitialisierer, Lambda-Ausdrücke, anonyme Typen, automatisch implementierte Eigenschaften, partielle Methoden und mehr. Außerdem wird auf Informationen über neue Features in der Visual C#-IDE verwiesen.C#-Programmiersprachenspezifikation
Verweise auf die aktuelle Version der Spezifikation im Microsoft Word-Format.
Befehlszeile
Main() und Befehlszeilenargumente (C#-Programmierhandbuch)
Erklärt die Main-Methode, den Einstiegspunkt des Programms, an dem Objekte erstellt und weitere Methoden aufgerufen werden. In einem C#-Programm ist maximal ein Einstiegspunkt erlaubt.Gewusst wie: Zugreifen auf Befehlszeilenargumente mithilfe von foreach (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie Sie auf die Befehlszeilenparameter zugreifen.Gewusst wie: Anzeigen von Befehlszeilenargumenten (C#-Programmierhandbuch)
Erklärt, wie Befehlszeilenargumente über das args-Zeichenfolgenarray angezeigt werden.Main()-Rückgabewerte (C#-Programmierhandbuch)
Erklärt die möglichen Rückgabewerte der Main-Methode.
Klassen und Vererbung
Gewusst wie: Initialisieren von Objekten ohne Aufruf eines Konstruktors (C#-Programmierhandbuch)
Veranschaulicht die Verwendung eines Objektinitialisierers.base (C#-Referenz)
Erläutert, wie der beim Erstellen von Instanzen einer abgeleiteten Klasse aufgerufene Basisklassenkonstruktor angegeben wird.Gewusst wie: Unterschiede zwischen dem Übergeben einer Struktur und dem Übergeben eines Klassenverweises an eine Methode (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, dass beim Übergeben einer Struktur an eine Methode eine Kopie der Struktur übergeben wird, beim Übergeben einer Klasseninstanz hingegen ein Verweis.Instanzkonstruktoren (C#-Programmierhandbuch)
Erklärt Klassenkonstruktoren und Vererbung.Gewusst wie: Schreiben eines Kopierkonstruktors (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie ein Konstruktor einer Klasse ein anderes Objekt als Argument verwendet.Gewusst wie: Implementieren von benutzerdefinierten Konvertierungen zwischen Strukturen (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie Konvertierungen zwischen zwei benutzerdefinierten Strukturen implementiert werden.
Typen
Typen (C#-Programmierhandbuch)
Bietet eine Übersicht über die Typen in C# und in .NET Framework.Umwandlung und Typkonvertierungen (C#-Programmierhandbuch)
Zeigt, wie implizite und explizite Konvertierungen verwendet werden.Boxing und Unboxing (C#-Programmierhandbuch)
Enthält Beispiele, die zeigen, wie Werttypen mittels Boxing und Unboxing konvertiert werden.Gewusst wie: Sichere Umwandlung mit den Operatoren "as" und "is" (C#-Programmierhandbuch)
Veranschaulicht, wie eine Konvertierung ausgeführt wird, ohne das Auslösen einer InvalidCastException zu riskieren.Gewusst wie: Konvertieren eines Bytearrays in einen ganzzahligen Typ (C#-Programmierhandbuch)
Veranschaulicht, wie ein Bytearray in einen System.Int32-Typ konvertiert wird.Gewusst wie: Konvertieren einer Zeichenfolge in einen ganzzahligen Typ (C#-Programmierhandbuch)
Wie ein Zeichenfolgenwert, z. B. "432", in eine ganze Zahl konvertiert wird.Gewusst wie: Konvertieren zwischen Hexadezimalzeichenfolgen und numerischen Typen (C#-Programmierhandbuch)
Wie ein Zeichenfolgenwert, wie z. B. "0xA10", in eine ganze Zahl konvertiert wird.
Arrays
Arrays als Objekte (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie die Anzahl der Abmessungen eines Arrays angezeigt wird.Verzweigte Arrays (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie ein Array erstellt wird, dessen Elemente ebenfalls Arrays sind.Übergeben von Arrays als Parameter (C#-Programmierhandbuch)
Zeigt anhand von Codebeispielen, wie ein Zeichenfolgenarray initialisiert und als Parameter an die PrintArray-Methode übergeben wird, die seine Elemente anzeigt.Übergeben von Arrays mithilfe von "ref" und "out" (C#-Programmierhandbuch)
Zeigt anhand von Codebeispielen, wie sich out und ref bei der Übergabe von Arrays an Methoden unterscheiden.Gewusst wie: Verwenden von implizit typisierten lokalen Variablen und Arrays in einem Abfrageausdruck (C#-Programmierhandbuch)
Erläutert die Verwendung der impliziten Typisierung für Arrays und lokale Variablen.
Eigenschaften
Gewusst wie: Implementieren einer einfachen Klasse mit automatisch implementierten Eigenschaften (C#-Programmierhandbuch)
Veranschaulicht das Erstellen kleiner Klassen, die einen Satz Eigenschaften kapseln.Gewusst wie: Deklarieren und Verwenden von Lese-/Schreibeigenschaften (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie Lese-/Schreibeigenschaften deklariert und verwendet werden.Gewusst wie: Definieren von abstrakten Eigenschaften (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie abstrakte Eigenschaften definiert werden.
Methoden
Übergeben von Werttypparametern (C#-Programmierhandbuch)
Zeigt anhand von Codebeispielen, wie Werttypen übergeben werden können.Übergeben von Verweistypparametern (C#-Programmierhandbuch)
Zeigt anhand von Codebeispielen, wie Referenztypen übergeben werden können.Gewusst wie: Implementieren und Aufrufen einer benutzerdefinierten Erweiterungsmethode (C#-Programmierhandbuch)
Erläutert die Erstellung einer statischen Methode, die wie eine Instanzenmethode für einen anderen Typ aufgerufen werden kann.
Ereignisse
Gewusst wie: Abonnieren von Ereignissen und Kündigen von Ereignisabonnements (C#-Programmierhandbuch)
Zeigt, wie Sie Ereignisse abonnieren, die von anderen Klassen veröffentlicht wurden, einschließlich Formularen, Schaltflächen, Listenfeldern usw.Gewusst wie: Veröffentlichen von Ereignissen, die den .NET Framework-Richtlinien entsprechen (C#-Programmierhandbuch)
Zeigt, wie Ereignisse auf Basis von EventHandler und EventHandler<TEventArgs> erstellt werden.Gewusst wie: Implementieren von Schnittstellenereignissen (C#-Programmierhandbuch)
Zeigt, wie in Schnittstellen deklarierte Ereignisse implementiert werden.Gewusst wie: Verwenden eines Wörterbuchs zum Speichern von Ereignisinstanzen (C#-Programmierhandbuch)
Erklärt, wie eine Hashtabelle verwendet wird, um die Ereignisinstanzen zu speichern.Gewusst wie: Auslösen von Basisklassenereignissen in abgeleiteten Klassen (C#-Programmierhandbuch)
Zeigt, wie Basisklassenereignisse mit geschützten virtuellen Methoden umschlossen werden, um sie über abgeleitete Klassen aufzurufen.Gewusst wie: Implementieren benutzerdefinierter Ereignisaccessoren (C#-Programmierhandbuch)
Veranschaulicht das Überschreiben des add-Ereignisaccessors und des remove-Ereignisaccessors.
Schnittstellen
Gewusst wie: Explizites Implementieren von Schnittstellenmembern (C#-Programmierhandbuch)
Zeigt, wie Sie eine Klasse deklarieren, die explizit eine Schnittstelle implementiert, und wie Sie über die Schnittstelleninstanz auf die Member zugreifen.Gewusst wie: Explizites Implementieren von Schnittstellenmembern mit Vererbung (C#-Programmierhandbuch)
Enthält ein Beispiel, das die Abmessungen eines Felds sowohl in metrischen als auch in englischen Maßeinheiten anzeigt.
Generika
Generika in .NET Framework
Erklärt die Features und die Verwendung der neuen generischen Auflistungen im System.Collections.Generic-Namespace.default-Schlüsselwort in generischem Code (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie das Standardschlüsselwort für Typparameter verwendet wird.Generische Methoden (C#-Programmierhandbuch)
Bietet eine Einführung in die Syntax zum Deklarieren einer generischen Methode. Enthält außerdem ein Beispiel, in dem die Verwendung generischer Methoden in einer Anwendung veranschaulicht wird.Einschränkungen für Typparameter (C#-Programmierhandbuch)
Zeigt das Einschränken von Typparametern, um Zugriff auf Methoden und Eigenschaften der zum Instanziieren der generischen Klasse verwendeten Typen zu ermöglichen.Generische Delegaten (C#-Programmierhandbuch)
Enthält die Syntax zum Deklarieren generischer Delegaten. Bietet weiterhin wichtige Hinweise und Codebeispiele zum Instanziieren und Verwenden generischer Delegaten.
Namespaces
- Gewusst wie: Verwenden des Namespacealiasqualifizierers (C#-Programmierhandbuch)
Diskutiert die Möglichkeit, auf einen Member im globalen Namespace zuzugreifen, wenn der Member unter Umständen durch eine andere Entität gleichen Namens verdeckt ist.
Iteratoren
Gewusst wie: Erstellen von Iteratorblöcken für generische Listen (C#-Programmierhandbuch)
Enthält ein Beispiel, in dem ein Array mit ganzen Zahlen verwendet wird, um die Liste SampleCollection zu erstellen. Eine for-Schleife durchläuft die Auflistung und liefert den Wert jedes einzelnen Elements. Dann werden die Elemente der Auflistung mithilfe einer foreach-Schleife angezeigt.Gewusst wie: Erstellen von Iteratorblöcken für generische Listen (C#-Programmierhandbuch)
Enthält ein Beispiel, in dem eine generische Klasse Stack<T> eine generische Schnittstelle IEnumerator<T> implementiert. Mithilfe der Push-Methode wird ein Array vom Typ T deklariert, und es werden ihm Werte zugewiesen. In der GetEnumerator-Methode werden die Werte des Arrays mithilfe der yield return-Anweisung zurückgegeben.
Delegaten
Anonyme Funktionen (C#-Programmierhandbuch)
Beschreibt die Erstellung von Delegattypen mithilfe von Lambda-Ausdrücken und anonymen Methoden.Gewusst wie: Kombinieren von Delegaten (Multicastdelegaten) (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie Multicastdelegaten verfasst werden.Gewusst wie: Deklarieren, Instanziieren und Verwenden von Delegaten (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie ein Delegat deklariert, instanziiert und verwendet wird.
Überladen von Operatoren
- Gewusst wie: Verwenden der Operatorüberladung zum Erstellen einer Klasse für komplexe Zahlen (C#-Programmierhandbuch)
Zeigt, wie Sie mit überladenen Operatoren eine Klasse Complex für komplexe Zahlen erstellen können, durch die komplexe Additionen definiert werden.
Interoperabilität
- Gewusst wie: Verwenden eines Plattformaufrufs zum Wiedergeben einer Wavedatei (C#-Programmierhandbuch)
Veranschaulicht, wie Sie Plattformaufrufdienste zum Wiedergeben einer Wavedatei in Windows verwenden.
Unsicherer Code
Gewusst wie: Verwenden von Zeigern zum Kopieren eines Bytearrays (C#-Programmierhandbuch)
Zeigt, wie Sie Zeiger für das Kopieren von Bytes von einem Array zum anderen verwenden.Gewusst wie: Verwenden der ReadFile-Funktion von Windows (C#-Programmierhandbuch)
Zeigt, wie Sie die Windows-ReadFile-Funktion aufrufen, die einen unsicheren Kontext erfordert, da der Lesepuffer einen Zeiger als Parameter benötigt.
Threading
Verwenden von Threads und Threading
Enthält eine Liste mit Themen, in denen erläutert wird, wie verwaltete Threads erstellt und verwaltet sowie unbeabsichtigte Folgen vermieden werden.Gewusst wie: Erstellen und Beenden von Threads (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie ein Thread erstellt und gestartet wird. Darüber hinaus wird die Interaktion zwischen zwei im selben Prozess gleichzeitig ausgeführten Threads demonstriert.Gewusst wie: Synchronisieren eines Producer- und Consumerthreads (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie Synchronisierung mit dem lock-Schlüsselwort in C# und der Pulse-Methode des Monitor-Objekts erreicht werden kann.Gewusst wie: Verwenden von Threadpools (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie ein Threadpool verwendet wird.
Zeichenfolgen
Gewusst wie: Suchen von Zeichenfolgen mithilfe von regulären Ausdrücken (C#-Programmierhandbuch)
Erläutert, wie die Regex-Klasse zum Suchen von Zeichenfolgen verwendet wird. Die Komplexität dieser Suchvorgänge kann unterschiedlich sein: es gibt sehr einfache Suchvorgänge und solche, die umfassend Gebrauch von regulären Ausdrücken machen.Gewusst wie: Verketten von mehreren Zeichenfolgen (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie mehrere Zeichenfolgen miteinander verknüpft werden.Gewusst wie: Suchen von Zeichenfolgen mithilfe von Zeichenfolgenmethoden (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie Sie mit String-Methoden nach einer Zeichenfolge suchen.Gewusst wie: Aufteilen von Zeichenfolgen (C#-Programmierhandbuch)
Enthält ein Codebeispiel, das das Aufteilen einer Zeichenfolge mit der Split-Methode veranschaulicht.Gewusst wie: Ändern von Zeichenfolgeninhalten (C#-Programmierhandbuch)
Zeigt anhand eines Codebeispiels, wie der Inhalt einer Zeichenfolge in ein Array extrahiert wird und danach einige Elemente des Arrays geändert werden.
Attribute
- Gewusst wie: Erstellen einer Union in C/C++ mit Attributen (C#-Programmierhandbuch)
Enthält ein Beispiel, in dem das Serializable-Attribut verwendet wird, um einer Klasse ein bestimmtes Merkmal zuzuweisen.
Arbeiten mit DLLs
- Gewusst wie: Erstellen und Verwenden von C#-DLLs (C#-Programmierhandbuch)
Zeigt anhand eines Beispiels, wie Sie eine DLL erstellen und verwenden.
Assemblys
Gewusst wie: Bestimmen, ob eine Datei eine Assembly ist (C#-Programmierhandbuch)
Enthält ein Beispiel, das überprüft, ob es sich bei einer DLL um eine Assembly handelt.Gewusst wie: Laden und Entladen von Assemblys (C#-Programmierhandbuch)
Zeigt, wie sich bestimmte Assemblys zur Laufzeit in die aktuelle Anwendungsdomäne laden lassen.Gewusst wie: Freigeben einer Assembly für andere Anwendungen (C#-Programmierhandbuch)
Erklärt, wie eine Assembly für weitere Anwendungen freigegeben wird.
Anwendungsdomänen
Ausführen von Code in einer anderen Anwendungsdomäne (C#-Programmierhandbuch)
Zeigt, wie eine Assembly ausgeführt wird, die in eine andere Anwendungsdomäne geladen wurde.Gewusst wie: Erstellen und Verwenden einer Anwendungsdomäne (C#-Programmierhandbuch)
Zeigt, wie das Überladen von Operatoren verwendet werden kann, um einen aus drei Werten bestehenden logischen Typ zu implementieren.
Beispiele
- Visual C#-Beispiele
Enthält Links zum Öffnen und Kopieren der Beispieldateien, u. a. Beispiel "Hello World" und Beispiel für Generika (C#).