F#-Sprachreferenz

Dieser Abschnitt ist eine Referenz für F#, eine Programmiersprache mit vielen Paradigmen, die auf .NET ausgerichtet ist. F# unterstützt funktionale, objektorientierte und imperative Programmiermodelle.

Organisieren von F#-Code

Die folgende Tabelle enthält Referenzartikel im Zusammenhang mit der Organisation Ihres F#-Codes.

Titel BESCHREIBUNG
Namespaces Erfahren Sie mehr über 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 Weitere Informationen zu Modulen. Ein F#-Modul ist wie ein Namespace und kann auch Werte und Funktionen enthalten. Das Gruppieren von Code in Modulen hilft dabei, verwandten Code zusammen zu halten und Namenskonflikte in Ihrem Programm zu vermeiden.
open-Deklarationen Erfahren Sie mehr über die Funktionsweise von open. Eine open-Deklaration gibt ein Modul, einen Namespace oder einen Typ an, auf dessen Elemente Sie ohne Angabe eines vollqualifizierten Namens verweisen können.
Signaturen Weitere Informationen zu 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.
Zugriffssteuerung Erfahren Sie mehr über Zugriffssteuerung in F#. Mit der Zugriffssteuerung wird deklariert, welche Clients bestimmte Programmelemente wie Typen, Methoden oder Funktionen verwenden können.
XML-Dokumentation Erfahren Sie mehr über die Unterstützung für das Generieren von Dokumentationsdateien aus XML-Dokumentkommentaren, auch als dreifache Schrägstrichkommentare bezeichnet. Sie können die Dokumentation aus Codekommentaren in F# genau wie in anderen .NET-Sprachen erstellen.

Literale und Zeichenfolgen

Die folgende Tabelle enthält Referenzartikel, in denen Literale und Zeichenfolgen in F# beschrieben werden.

Titel BESCHREIBUNG
Literale Erfahren Sie mehr über die Syntax für Literalwerte in F# und wie Typinformationen für F#-Literale angegeben werden.
Zeichenfolgen Erfahren Sie mehr über 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.
Interpolierte Zeichenfolgen Erfahren Sie mehr über interpolierte Zeichenfolgen, eine spezielle Form von Zeichenfolge, in die Sie F#-Ausdrücke direkt einbetten können.

Werte und Funktionen

Die folgende Tabelle enthält Referenzartikel, in denen Sprachkonzepte im Zusammenhang mit Werten, let-Bindungen und Funktionen beschrieben werden.

Titel BESCHREIBUNG
Werte Erfahren Sie mehr über Werte, die unveränderliche Mengen darstellen und einen bestimmten Typ aufweisen. Werte können Integerwerte oder Gleitkommazahlen, Zeichen oder Text, Listen, Sequenzen, Arrays, Tupel, Unterscheidungs-Unions, Datensätze, Klassentypen oder Funktionswerte sein.
Funktionen Funktionen sind die grundlegende Einheit für die Ausführung des Programms in einer beliebigen Programmiersprache. Eine F#-Funktion verfügt ü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.
Funktionsausdrücke Erfahren Sie, wie Sie das F#-Schlüsselwort „fun“ verwenden, um einen Lambdaausdruck zu definieren, bei dem es sich um eine anonyme Funktion handelt.

Schleifen und Bedingungen

In der folgenden Tabelle werden Artikel aufgeführt, in denen F#-Schleifen und -Bedingungen beschrieben werden.

Titel BESCHREIBUNG
Bedingte Ausdrücke: if...then...else Erfahren Sie mehr über den if...then...else-Ausdruck, der unterschiedliche Codebranches ausführt und abhängig vom angegebenen booleschen Ausdruck einen anderen Wert ergibt.
Schleifen: for...in-Ausdruck Erfahren Sie mehr über den for...in-Ausdruck, ein Schleifenkonstrukt, das zum Durchlaufen der Übereinstimmungen eines Musters in einer aufzählbaren Sammlung verwendet wird, z. B. in einer Reihe von Ausdrücken, einer Sequenz, einer Liste, einem Array oder einem anderen Konstrukt, das die Enumeration unterstützt.
Schleifen: for...to-Ausdruck Erfahren Sie mehr über den for...to-Ausdruck, der zum Durchlaufen einer Schleife eines Wertebereichs einer Schleifenvariable verwendet wird.
Schleifen: while...do-Ausdruck Erfahren Sie mehr über den while...do-Ausdruck, der verwendet wird, um iterative Ausführung (Schleifen) auszuführen, während eine bestimmte Testbedingung erfüllt ist.

Musterabgleich

Die folgende Tabelle enthält Referenzartikel, die Sprachkonzepte beschreiben.

Titel BESCHREIBUNG
Mustervergleich Erfahren Sie mehr über Muster, die in F# als Regeln zur Transformation von Eingangsdaten verwendet werden. Mithilfe von Mustern können Sie Daten vergleichen, zerlegen oder auf verschiedene Weise Informationen aus diesen extrahieren.
Vergleichsausdrücke Erfahren Sie mehr über den match-Ausdruck, der die Branchingsteuerung bereitstellt, die auf dem Vergleich eines Ausdrucks mit einer Reihe von Mustern basiert.
Aktive Muster Erfahren Sie mehr über 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.

Ausnahmebehandlung

Die folgende Tabelle enthält Referenzartikel, in denen Sprachkonzepte im Zusammenhang mit Ausnahmebehandlung beschrieben werden.

Titel BESCHREIBUNG
Ausnahmebehandlung Enthält Informationen zur Unterstützung von Ausnahmebehandlung in F#.
Der try...with-Ausdruck Erfahren Sie, wie Sie den Ausdruck try...with für Ausnahmebehandlung verwenden.
Der try...finally-Ausdruck Erfahren Sie, wie Sie mit dem F#-Ausdruck try...finally Bereinigungscode auch dann ausführen können, wenn ein Codeblock eine Ausnahme auslöst.
Das use-Schlüsselwort Erfahren Sie mehr über die Schlüsselwörter use und using, die die Initialisierung und Freigabe von Ressourcen steuern können.
Assertionen Erfahren Sie mehr über den Ausdruck assert, der eine Debugfunktion zum Testen eines Ausdrucks ist. Bei einem Fehler im Debugmodus generiert eine Assertion ein Dialogfeld „Systemfehler“.

Typen und Typrückschluss

Die folgende Tabelle enthält Referenzartikel, in denen beschrieben wird, wie Typen und Typrückschlüsse in F# funktionieren.

Titel BESCHREIBUNG
Typen Erfahren Sie mehr über die Typen, die in F# verwendet werden und wie F#-Typen benannt und beschrieben werden.
Standardtypen Erfahren Sie mehr über die grundlegenden Typen, die in 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 Erfahren Sie mehr über 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.
Typabkürzungen Erfahren Sie mehr über Typabkürzungen, die alternative Namen für Typen sind.
Typableitung Erfahren Sie, wie der F#-Compiler die Typen von Werten, Variablen, Parametern und Rückgabewerten ableitet.
Umwandlung und Konvertierungen Erfahren Sie mehr über Unterstützung für Typumwandlungen in F#.
Generics Erfahren Sie mehr über generische Konstrukte in F#.
Automatische Verallgemeinerung Erfahren Sie, wie F# die Argumente und Funktionstypen automatisch generalisiert, sodass sie nach Möglichkeit mit mehreren Typen funktionieren.
Einschränkungen Erfahren Sie mehr über Einschränkungen, die für generische Typparameter gelten, um die Anforderungen für ein Typargument in einem generischen Typ oder einer generischen Funktion anzugeben.
Flexible Typen Erfahren Sie mehr über flexible Typen. Eine flexible Typanmerkung gibt an, dass ein Parameter, eine Variable oder ein Wert einen Typ aufweist, der mit dem angegebenen Typ kompatibel ist. Die Kompatibilität wird durch die Position in einer objektorientierten Hierarchie der Klassen oder Schnittstellen bestimmt.
Maßeinheiten Erfahren Sie mehr über 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.
Byrefs Erfahren Sie mehr über byref- und byref-ähnliche Typen in F#, die für Programmierung auf niedriger Ebene verwendet werden.

Tupel, Listen, Sammlungen, Optionen

Die folgende Tabelle enthält Referenzartikel, die Typen beschreiben, die von F# unterstützt werden.

Titel BESCHREIBUNG
Tupel Erfahren Sie mehr über Tupel, die Gruppierungen unbenannter aber sortierter Werte möglicherweise unterschiedlicher Typen sind.
Sammlungen Eine Übersicht der funktionalen Auflistungstypen von F#, einschließlich Typen für Arrays, Listen, Sequenzen (seq), Zuordnungen und Sätzen.
Listen Erfahren Sie mehr über Listen. Eine Liste in F# stellt eine geordnete, unveränderliche Reihe von Elementen desselben Typs dar.
Optionen Erfahren Sie mehr über 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.
Arrays Erfahren Sie mehr über Arrays. Arrays sind nullbasierte, änderbare Sequenzen fester Größe von aufeinander folgenden Datenelementen, die alle den gleichen Typ aufweisen.
Sequenzen Erfahren Sie mehr über Sequenzen. Eine Sequenz ist eine logische Reihe von Elementen eines einzigen Typs. Einzelne Sequenzelemente werden nur bei Bedarf berechnet, sodass die Darstellung kleiner als die Anzahl der Literalelemente sein kann.
Sequenzausdrücke Erfahren Sie mehr über Sequenzausdrücken, mit denen Sie bei Bedarf Datensequenzen generieren können.
Referenzzellen Erfahren Sie mehr über Referenzzellen, die Speicherorte sind, die Ihnen ermöglichen, änderbare Werte mit Verweissemantik zu erstellen.

Datensätze und Unterscheidungs-Unions

Die folgende Tabelle enthält Referenzartikel, in denen von F# unterstützte Definitionen von Datensatz- und Unterscheidungs-Union-Typen beschrieben werden.

Titel BESCHREIBUNG
Datensätze Erfahren Sie mehr über Datensätze. Datensätze stellen einfache Aggregate benannter Werte dar, optional mit Membern.
Anonyme Datensätze Erfahren Sie, wie Sie anonyme Datensätze erstellen und verwenden, ein Sprachfeature, das bei der Bearbeitung von Daten hilft.
Unterscheidungs-Unions Erfahren Sie mehr über unterscheidbare Unions, die Werte verschiedener benannter Fälle unterstützen können, die jeweils unterschiedliche Werte und Typen aufweisen.
Strukturen Erfahren Sie mehr über 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.
Enumerationen Enumerationen sind Typen, die über einen definierten Satz benannter Werte verfügen. Sie können diese anstelle von Literalen verwenden, um Code lesbarer und verwaltbarer zu machen.

Objektprogrammierung

Die folgende Tabelle enthält Referenzartikel, die F#-Objektprogrammierung beschreiben.

Titel BESCHREIBUNG
Klassen Erfahren Sie mehr über Klassen, die Typen sind, die Objekte darstellen. Diese können über Eigenschaften, Methoden und Ereignisse verfügen.
Schnittstellen Erfahren Sie mehr über Schnittstellen, die Gruppen von verwandten Membern angeben, die von anderen Klassen implementiert werden.
Abstrakte Klassen Erfahren Sie mehr über abstrakte Klassen, die Klassen sind, die einige oder alle Member nicht implementiert lassen, damit Implementierungen von abgeleiteten Klassen bereitgestellt werden können.
Typerweiterungen Erfahren Sie mehr über Typerweiterungen, mit denen Sie einem zuvor definierten Objekttyp neue Member hinzufügen können.
Delegaten Erfahren Sie mehr über Delegaten, die einen Funktionsaufruf als Objekt darstellen.
Vererbung Erfahren Sie mehr über Vererbung, die zur Modellierung der „ist-ein“-Beziehung oder von Untertypen in der objektorientierten Programmierung verwendet wird.
Mitglieder Erfahren Sie mehr über Member von F#-Objekttypen.
Parameter und Argumente Erfahren Sie mehr über 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 Erfahren Sie, wie arithmetische Operatoren in einer Klasse oder einem Datensatztyp sowie auf globaler Ebene überladen werden.
Objektausdrücke Erfahren Sie mehr über 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.

Asynchrone, taskbezogene und verzögerte Ausdrücke

Die folgende Tabelle enthält Themen, in denen asynchrone, taskbezogene und verzögerte F#-Ausdrücke beschrieben werden.

Titel BESCHREIBUNG
Asynchrone Ausdrücke Erfahren Sie mehr über asynchrone Ausdrücke, mit denen Sie asynchronen Code auf eine Weise schreiben können, die dem Schreiben von synchronem Code sehr nahe kommt.
Taskausdrücke Erfahren Sie mehr über Taskausdrücke, die eine alternative Möglichkeit zum Schreiben von asynchronem Code darstellen. Sie werden verwendet, wenn .NET-Code ausgeführt wird, der .NET-Tasks nutzt oder generiert.
Nicht strikte Ausdrücke Erfahren Sie mehr über verzögerte Ausdrücke, also Berechnungen, die nicht sofort ausgewertet werden, sondern erst dann, wenn das Ergebnis tatsächlich benötigt wird.

Berechnungsausdrücke und Abfragen

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

Titel BESCHREIBUNG
Berechnungsausdrücke Erfahren Sie mehr über 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 Daten, Steuerelemente und Nebenwirkungen in funktionalen Programmen zu verwalten.
Abfrageausdrücke Erfahren Sie mehr über Abfrageausdrücke, ein Sprachfeature, das LINQ für F# implementiert, und mit dem Sie Abfragen für eine Datenquelle oder eine aufzählbare Sammlung schreiben können.

Attribute, Reflexion, Anführungszeichen und Nur-Text-Formatierung

Die folgende Tabelle enthält Artikel, in denen reflektierende F#-Funktionen beschrieben werden, einschließlich Attributen, Anführungszeichen, nameof und Nur-Text-Formatierung.

Titel Beschreibung
Attribute Erfahren Sie mehr über F#-Attribute, mit denen Metadaten auf ein Programmierungskonstrukt angewendet werden können.
nameof Erfahren Sie mehr über den nameof-Operator, ein Metaprogrammierungsfeature, mit dem Sie den Namen eines beliebigen Symbols in Ihrem Quellcode generieren können.
Aufruferinformationen Erfahren Sie, wie Aufruferinformations-Argumentattribute verwendet werden, um Aufruferinformationen aus einer Methode abzurufen.
Quellzeilen-, Datei- und Pfadbezeichner Erfahren Sie mehr über 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.
Zitieren von Code Erfahren Sie mehr über Codezitate, eine Sprachfunktion, die das programmgesteuerte Generieren und Arbeiten mit F#-Codeausdrücken ermöglicht.
Formatieren von Nur-Text Hier erfahren Sie, wie Sie sprintf und andere Nur-Text-Formatierungen in F#-Anwendungen und -Skripts verwenden.

Typanbieter

Die folgende Tabelle enthält Artikel, in denen F#-Typanbieter beschrieben werden.

Titel BESCHREIBUNG
Typanbieter Erfahren Sie mehr über Typanbieter, und nutzen Links zu exemplarischen Vorgehensweisen zur Verwendung des integrierten Typanbieters, um auf Datenbanken und Webdienste zuzugreifen.
Erstellen eines Typanbieters Erfahren Sie, wie Sie Ihre eigenen F#-Typanbieter erstellen, indem Sie mehrere einfache Typanbieter untersuchen, die die grundlegenden Konzepte veranschaulichen.

API-Referenz zur F# Core-Bibliothek

Die API-Referenz zur F# Core-Bibliothek (FSharp.Core) ist die Referenz für alle Namespaces, Module, Typen und Funktionen der F# Core-Bibliothek.

Verweistabellen

Die folgende Tabelle enthält Referenzartikel, die Tabellen mit Schlüsselwörtern, Symbolen und Literalen enthalten, 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 F# verwendet werden.

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 die vom F#-Compiler unterstützten Prozessor- und Compileranweisungen.