F#-Sprachreferenz

Dieser Abschnitt ist ein Verweis auf die Sprache F#, eine Programmiersprache mit vielen Paradigmen, die auf die .NET-Plattform ausgerichtet ist. Die Sprache F# unterstützt funktionale, objektorientierte und imperative Programmiermodelle.

F#-Token

Die folgende Tabelle enthält Referenzthemen, die Tabellen der Schlüsselwörter, Symbole und Literale bereitstellen, die als Token in F# verwendet werden.

Titel Beschreibung
Schlüsselwortreferenz Enthält Links zu Informationen über alle F#-Schlüsselwörter.
Symbol- und Operatorenreferenz Enthält eine Tabelle mit Symbolen und Operatoren, die in der Sprache F# verwendet werden.
Literale Beschreibt die Syntax für literale Werte in F# und wie Typinformationen für F#-Literale angegeben werden.

F#-Sprachkonzepte

Die folgende Tabelle listet die verfügbare Referenzthemen auf, die Sprachkonzepte beschreiben.

Titel Beschreibung
Funktionen Funktionen sind die grundlegende Einheit für die Ausführung des Programms in einer beliebigen Programmiersprache. So wie in anderen Sprachen auch, verfügt eine F#-Funktion über einen Namen, kann Parameter besitzen und Argumente verwenden und verfügt über Text. F# unterstützt auch funktionale Konstrukte der Programmierung, z.B. das Behandeln von Funktionen als Werte, Verwenden von unbenannten Funktionen als Ausdrücke, die Zusammensetzung von Funktionen zum Bilden neuer Funktionen, Funktionen mit Currying sowie die implizite Definition von Funktionen mit der teilweise Anwendung von Funktionsargumenten.
F#-Typen Beschreibt die Typen, die in F# verwendet werden und wie F#-Typen benannt und beschrieben werden.
Typableitung Beschreibt, wie der F#-Compiler die Typen von Werten, Variablen, Parameter und Rückgabewerte herleitet.
Automatische Verallgemeinerung Beschreibt generische Konstrukte in F#.
Vererbung Beschreibt die Vererbung, die zur Modellierung der „ist-ein“-Beziehung oder von Untertypen in der objektorientierten Programmierung verwendet wird.
Mitglieder Beschreibt Member von F#-Objekttypen.
Parameter und Argumente Beschreibt die Sprachunterstützung zum Definieren von Parametern und zum Übergeben von Argumenten an Funktionen, Methoden und Eigenschaften. Enthält Informationen zur Übergabe als Verweis.
Operatorüberladung Beschreibt, wie arithmetische Operatoren in einer Klasse oder einem Datensatztyp sowie auf globaler Ebene überladen werden.
Umwandlung und Konvertierungen Beschreibt die Unterstützung für Typumwandlungen in F#.
Zugriffssteuerung Beschreibt die Zugriffssteuerung in F#. Zugriffssteuerung beschreibt, wie deklariert wird, welche Clients bestimmte Programmelemente verwenden können, z.B. Typen, Methoden, Funktionen usw.
Mustervergleich Beschreibt Muster,die Regeln zum Umwandeln von Eingabedaten sind, die in F# stets verwendet werden, um Vergleichsdaten mit einem Muster zu extrahieren, Daten in konstituierende Teile zu zerlegen oder Informationen aus Daten auf unterschiedliche Art zu extrahieren.
Aktive Muster Beschreibt aktive Muster. Mit aktiven Mustern können Sie benannte Partitionen definieren, die Eingabedaten unterteilen. Mit aktiven Mustern können Sie Daten benutzerdefiniert für jede Partition zerlegen.
Assertionen Beschreibt den Ausdruck assert, der eine Debugfunktion zum Testen eines Ausdrucks ist. Bei einem Fehler im Debugmodus generiert eine Assertion ein Dialogfeld „Systemfehler“.
Ausnahmebehandlung Enthält Informationen über die Unterstützung für die Ausnahmebehandlung in der Sprache F#.
Attribute Beschreibt die Attribute, mit denen Metadaten auf ein Programmierungskonstrukt angewendet werden können.
Ressourcenverwaltung: Das use-Schlüsselwort Beschreibt die Schlüsselwörter use und using, die die Initialisierung und Freigabe von Ressourcen steuern können.
Namespaces Beschreibt die Namespaceunterstützung in F#. Mit einem Namespace können Sie Code in Bereichen verwandter Funktionalität organisieren, indem Sie einen Namen an eine Gruppierung von Programmelementen anfügen.
Module Beschreibt Module. Ein F#-Modul ist eine Gruppierung von F#-Code, z.B. Werte, Typen und Funktionswerte in einem F#-Programm. Das Gruppieren von Code in Modulen hilft dabei, verwandten Code zusammen zu halten und Namenskonflikte in Ihrem Programm zu vermeiden.
Importdeklarationen: Das open-Schlüsselwort Beschreibt, wie open funktioniert. Eine Importdeklaration gibt ein Modul oder einen Namespace an, auf dessen Elemente Sie ohne Angabe eines vollqualifizierten Namens verweisen können.
Signaturen Beschreibt Signaturen und Signaturdateien. Eine Signaturdatei enthält Informationen zu den öffentlichen Signaturen einer Reihe von F#-Programmelementen wie Typen, Namespaces und Modulen. Mit ihr kann der Zugriff auf diese Programmelemente angegeben werden.
XML-Dokumentation Beschreibt die Unterstützung für das Generieren von Dokumentationsdateien für XML-Dokumentkommentare, auch bekannt als Kommentare mit drei Schrägstrichen. Sie können die Dokumentation von Codekommentaren im Code in F# genau so wie in anderen .NET-Sprachen erstellen.
Ausführliche Syntax Beschreibt die Syntax für F#-Konstrukte, wenn die einfache Syntax nicht aktiviert ist. Ausführliche Syntax wird durch die #light "off"-Direktive ganz oben in der Codedatei beschrieben.

F#-Typen

Die folgende Tabelle enthält verfügbare Referenzthemen, die von F# unterstützte Typen beschreiben.

Titel Beschreibung
Werte Beschreibt Werte, die unveränderliche Mengen darstellen und einen bestimmten Typ aufweisen. Werte können Ganzzahlen oder Gleitkommazahlen, Zeichen oder Text, Listen, Sequenzen, Arrays, Tupeln, Unterscheidungs-Unions, Datensätze, Klassentypen oder Funktionswerte sein.
Primitive Typen Beschreibt die grundlegenden primitiven Typen, die in der Sprache F# verwendet werden. Darüber hinaus werden die entsprechenden Typen in .NET und die minimalen und maximalen Werte für jeden Typ bereitgestellt.
Unit-Typ Beschreibt den unit-Typ, der ein Typ ist, der das Fehlen eines bestimmten Werts beschreibt; der unit-Typ verfügt nur über einen einzigen Wert, der als Platzhalter fungiert, wenn kein anderer Wert vorhanden oder erforderlich ist.
Zeichenfolgen Beschreibt Zeichenfolgen in F#. Die string-Typ stellt unveränderlichen Text als eine Sequenz von Unicode-Zeichen dar. string ist ein Alias für System.String in .NET Framework.
Tupel Beschreibt Tupel, die Gruppierungen unbenannter aber sortierter Werte möglicher unterschiedlicher Typen sind.
F#-Auflistungstypen Eine Übersicht der funktionalen Auflistungstypen von F#, einschließlich Typen für Arrays, Listen, Sequenzen (seq), Zuordnungen und Sätzen.
Listen Beschreibt Listen. Eine Liste in F# stellt eine geordnete, unveränderliche Reihe von Elementen desselben Typs dar.
Optionen Beschreibt den Optionstyp. Eine Option in F# wird verwendet, wenn ein Wert möglicherweise vorhanden oder nicht vorhanden ist. Eine Option verfügt über einen zugrunde liegenden Typ und enthält möglicherweise einen Wert dieses Typs oder keinen Wert.
Sequenzen Beschreibt Sequenzen. Eine Sequenz ist eine logische Reihe von Elementen eines einzigen Typs. Einzelne Sequenzelemente werden nur bei Bedarf berechnet, damit die Darstellung möglicherweise kleiner ist, als die Anzahl des Literal-Elements angibt.
Arrays Beschreibt Arrays. Arrays sind nullbasierte, änderbare Sequenzen fester Größe von aufeinander folgenden Datenelementen, die alle den gleichen Typ aufweisen.
Datensätze Beschreibt Datensätze. Datensätze stellen einfache Aggregate benannter Werte dar, optional mit Membern.
Unterscheidbare Unions Beschreibt diskriminierte Unions, die Unterstützung für Werte bieten, die eine Vielzahl verschiedener benannter Fälle sein können, und jeder Fall verfügt über unterschiedliche Werte und Typen.
Enumerationen Beschreibt, dass Enumerationen Typen sind, die über einen definierten Satz benannter Werte verfügen. Sie können diese anstelle von Literalen verwenden, um Code lesbarer und verwaltbarer zu machen.
Referenzzellen Beschreibt Referenzzellen, die Speicherorte sind, die Ihnen ermöglichen, änderbare Werte mit Verweissemantik zu erstellen.
Typabkürzungen Beschreibt Typabkürzungen, die alternative Namen für Typen sind.
Klassen Beschreibt Klassen, die Typen sind, die Objekte darstellen. Diese können über Eigenschaften, Methoden und Ereignisse verfügen.
Strukturen Beschreibt Strukturen, die kompakte Objekttypen darstellen, die für Typen, die nur eine geringe Datenmenge und ein einfaches Verhalten aufweisen, effizienter als eine Klasse sein können.
Schnittstellen Beschreibt die Schnittstellen, die Gruppen von verwandten Elementen angeben, die von anderen Klassen implementiert werden.
Abstrakte Klassen Beschreibt abstrakte Klassen, die Klassen sind, die einige oder alle Member nicht implementiert lassen, damit Implementierungen von abgeleiteten Klassen bereitgestellt werden können.
Typerweiterungen Beschreibt Typerweiterungen, mit denen Sie einem zuvor definierten Objekttyp neue Member hinzufügen können.
Flexible Typen Beschreibt flexible Typen. Eine Anmerkung flexibler Typen ist ein Hinweis, dass ein Parameter, eine Variable oder ein Wert über einen Typ verfügt, der mit dem angegebenen Typ kompatibel ist. Die Kompatibilität wird durch die Position in einer objektorientierten Hierarchie von Klassen oder Schnittstellen bestimmt.
Delegaten Beschreibt Delegaten, die einen Funktionsaufruf als Objekt darstellen.
Maßeinheiten Beschreibt Maßeinheiten. Gleitkommawerte in F# können zugeordnete Maßeinheiten besitzen, die in der Regel verwendet werden, um Länge, Volumen, Masse und usw. anzugeben.
Typanbieter Beschreibt Typanbieter und stellt Links zu exemplarischen Vorgehensweisen zur Verwendung des integrierten Typanbieters bereit, um auf Datenbanken und Webdienste zuzugreifen.

F#-Ausdrücke

Die folgende Tabelle enthält Themen, in denen F#-Ausdrücke beschrieben werden.

Titel Beschreibung
Bedingte Ausdrücke: if...then...else Beschreibt den if...then...else-Ausdruck, der unterschiedliche Codezweige ausführt und je nach angegebenem booleschen Ausdruck ebenso einen anderen Wert ergibt.
Vergleichsausdrücke Beschreibt den match-Ausdruck, der die Verzweigungssteuerung bereitstellt, die auf dem Vergleich eines Ausdrucks mit einer Reihe von Mustern basiert.
Schleifen: for...to-Ausdruck Beschreibt den for...to-Ausdruck, der zum Durchlaufen einer Schleife eines Wertebereichs einer Schleifenvariable verwendet wird.
Schleifen: for...in-Ausdruck Beschreibt den for...in-Ausdruck, ein Schleifenkonstrukt, das zum Durchlaufen der Übereinstimmungen eines Musters in einer aufzählbaren Auflistung verwendet wird, z.B. eine Reihe von Ausdrücken, eine Sequenz, Liste, ein Array oder ein anderes Konstrukt, das die Enumeration unterstützt.
Schleifen: while...do-Ausdruck Beschreibt den while...do-Ausdruck, der verwendet wird, um iterative Ausführung (Schleifen) auszuführen, während eine bestimmte Testbedingung erfüllt ist.
Objektausdrücke Beschreibt Objektausdrücke, die Ausdrücke darstellen, die neue Instanzen eines dynamisch erstellten anonymen Objekttyps erstellen, der auf einem vorhandenen Basistyp, einer Schnittstelle oder einem Satz von Schnittstellen basiert.
Verzögerte Berechnungen Beschreibt verzögerte Berechnungen, was Berechnungen sind, die nicht sofort ausgewertet werden, sondern erst dann, wenn das Ergebnis tatsächlich benötigt wird.
Berechnungsausdrücke Beschreibt Berechnungsausdrücke in F#, die eine bequeme Syntax für das Schreiben von Berechnungen bereitstellen, die mithilfe von Ablaufsteuerungskonstrukten und Bindungen sequenziert und kombiniert werden können. Sie können verwendet werden, um eine einfache Syntax für monads bereitstellen, eine Funktion zur funktionalen Programmierung, die zur Verwaltung von Daten, Steuereffekte und Nebenwirkungen in funktionalen Programmen verwendet werden können. Ein Typ eines Berechnungsausdrucks, der asynchrone Workflow, bietet Unterstützung für asynchrone und gleichzeitige Berechnungen. Weitere Informationen finden Sie unter Asynchrone Workflows.
Asynchrone Workflows Beschreibt asynchrone Workflows, eine Sprachfunktion, mit der Sie asynchronen Code in einer Weise schreiben können, die der Methode zum Schreiben von synchronem Code sehr ähnlich ist.
Zitieren von Code Beschreibt Codezitate, eine Sprachfunktion, die das programmgesteuerte Generieren und Arbeiten mit F#-Codeausdrücken ermöglicht.
Abfrageausdrücke Beschreibt die Abfrageausdrücke, ein Sprachfeature, das LINQ für F# implementiert, und mit dem Sie Abfragen für eine Datenquelle oder eine aufzählbare Auflistung schreiben können.

Vom Compiler unterstützte Konstrukte

Die folgende Tabelle enthält Themen, die bestimmte compilerunterstützte Konstrukte enthalten.

Thema Beschreibung
Compileroptionen Beschreibt die Befehlszeilenoptionen für den F#-Compiler.
Compileranweisungen Beschreibt Prozessor- und Compileranweisungen.
Quellzeilen-, Datei- und Pfadbezeichner Beschreibt die Bezeichner __LINE__, __SOURCE_DIRECTORY__ und __SOURCE_FILE__, die integrierte Werte darstellen, mit denen Sie auf die Zeilennummer der Quelle sowie auf das Verzeichnis und den Dateinamen in Ihrem Code zugreifen können.

Siehe auch

Visual F#