Teilen über


F#-Sprachreferenz

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

Organisieren von F#-Code

Die folgende Tabelle enthält Referenzartikel zum Organisieren ihres F#-Codes.

Titel BESCHREIBUNG
Namespaces Erfahren Sie mehr über die Namespaceunterstützung in F#. Mit einem Namespace können Sie Code in Bereiche verwandter Funktionen organisieren, indem Sie einen Namen an eine Gruppierung von Programmelementen anfügen können.
Module Erfahren Sie mehr über Module. Ein F#-Modul ist wie ein Namespace und kann auch Werte und Funktionen enthalten. Das Gruppieren von Code in Modulen trägt dazu bei, verwandten Code zusammenzuhalten und Namenskonflikte in Ihrem Programm zu vermeiden.
open Deklarationen Erfahren Sie mehr über die open Funktionsweise. Eine open Deklaration gibt ein Modul, einen Namespace oder einen Typ an, auf dessen Elemente Sie verweisen können, ohne einen vollqualifizierten Namen zu verwenden.
Signatures Erfahren Sie mehr über Signaturen und Signaturdateien. Eine Signaturdatei enthält Informationen über die öffentlichen Signaturen einer Reihe von F#-Programmelementen, z. B. Typen, Namespaces und Module. Sie kann verwendet werden, um die Barrierefreiheit dieser Programmelemente anzugeben.
Zugriffssteuerung Erfahren Sie mehr über die Zugriffssteuerung in F#. Die Zugriffssteuerung bedeutet, dass sie deklarieren, welche Clients bestimmte Programmelemente wie Typen, Methoden, Funktionen usw. 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ägstriche bezeichnet. Sie können dokumentationen aus Codekommentaren in F# wie in anderen .NET-Sprachen erstellen.

Literale und Zeichenfolgen

In der folgenden Tabelle sind Referenzartikel aufgeführt, die Literale und Zeichenfolgen in F# beschreiben.

Titel BESCHREIBUNG
Literale Erfahren Sie mehr über die Syntax für Literalwerte in F# und wie Sie Typinformationen für F#-Literale angeben.
Zeichenfolgen Erfahren Sie mehr über Zeichenfolgen in F#. Der string Typ stellt unveränderlichen Text als Abfolge 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 Zeichenfolgen, mit der Sie F#-Ausdrücke direkt darin einbetten können.

Werte und Funktionen

Die folgende Tabelle enthält Referenzartikel, die Sprachkonzepte im Zusammenhang mit Werten, let-Bindungen und Funktionen beschreiben.

Titel BESCHREIBUNG
Werte Erfahren Sie mehr über Werte, bei denen es sich um unveränderliche Mengen handelt, die einen bestimmten Typ aufweisen; Werte können integrale oder Gleitkommazahlen, Zeichen oder Text, Listen, Sequenzen, Arrays, Tupel, diskriminierte Vereinigungen, Datensätze, Klassentypen oder Funktionswerte sein.
Funktionen Funktionen sind die grundlegende Programmausführungseinheit in jeder Programmiersprache. Eine F#-Funktion weist einen Namen auf, kann Parameter aufweisen und Argumente annehmen und einen Textkörper aufweisen. F# unterstützt auch funktionsbezogene Programmierkonstrukte wie das Behandeln von Funktionen als Werte, die Verwendung von nicht benannten Funktionen in Ausdrücken, die Zusammensetzung von Funktionen, um neue Funktionen, geschweifte Funktionen zu bilden, und die implizite Definition von Funktionen mithilfe der teilweisen Anwendung von Funktionsargumenten.
Funktionsausdrücke Erfahren Sie, wie Sie das F#-Schlüsselwort "fun" verwenden, um einen Lambda-Ausdruck zu definieren, bei dem es sich um eine anonyme Funktion handelt.

Schleifen und Bedingungen

In der folgenden Tabelle sind Artikel aufgeführt, die F#-Schleifen und -Bedingungen beschreiben.

Titel BESCHREIBUNG
Bedingte Ausdrücke: if...then...else Erfahren Sie mehr über den Ausdruck, der if...then...else verschiedene Codezweige ausführt und je nach dem angegebenen booleschen Ausdruck auch einen anderen Wert auswertet.
Schleifen: for...in Ausdruck Erfahren Sie mehr über den for...in Ausdruck, ein Schleifenkonstrukt, das zum Durchlaufen der Übereinstimmungen eines Musters in einer enumerationsfähigen Auflistung verwendet wird, z. B. einen Bereichsausdruck, eine Sequenz, eine Liste, ein Array oder ein anderes Konstrukt, das Enumeration unterstützt.
Schleifen: for...to Ausdruck Erfahren Sie mehr über den Ausdruck, der for...to zum Durchlaufen in einer Schleife über einen Wertebereich einer Schleifenvariable verwendet wird.
Schleifen: while...do Ausdruck Erfahren Sie mehr über den Ausdruck, der while...do zum Ausführen der iterativen Ausführung (Schleifen) verwendet wird, während eine angegebene Testbedingung wahr ist.

Mustervergleich

Die folgende Tabelle enthält Referenzartikel zur Beschreibung von Sprachkonzepten.

Titel BESCHREIBUNG
Mustervergleich Erfahren Sie mehr über Muster, die Regeln zum Transformieren von Eingabedaten sind und in F# verwendet werden. Sie können Daten mit einem Muster vergleichen, Daten in Bestandteile zerlegen oder Informationen aus Daten auf verschiedene Weise extrahieren.
Vergleichsausdrücke Erfahren Sie mehr über den match Ausdruck, der Verzweigungssteuerelemente bereitstellt, die auf dem Vergleich eines Ausdrucks mit einer Reihe von Mustern basieren.
Aktive Muster Erfahren Sie mehr über aktive Muster. Mit aktiven Mustern können Sie benannte Partitionen definieren, die Eingabedaten unterteilen. Sie können aktive Muster verwenden, um Daten auf angepasste Weise für jede Partition zu dekompilieren.

Ausnahmebehandlung

Die folgende Tabelle enthält Referenzartikel zur Beschreibung von Sprachkonzepten im Zusammenhang mit der Ausnahmebehandlung.

Titel BESCHREIBUNG
Ausnahmebehandlung Enthält Informationen zur Unterstützung der Ausnahmebehandlung in F#.
Der try...with Ausdruck Erfahren Sie, wie Sie den Ausdruck für die try...with Ausnahmebehandlung verwenden.
Der try...finally Ausdruck Erfahren Sie, wie Sie mit dem F# try...finally -Ausdruck Bereinigungscode ausführen können, auch 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.
Behauptungen Erfahren Sie mehr über den assert Ausdruck, bei dem es sich um ein Debuggingfeature handelt, mit dem Sie einen Ausdruck testen können. Bei Einem Fehler im Debugmodus generiert eine Assertion ein Systemfehlerdialogfeld.

Typen und Typinferenz

In der folgenden Tabelle sind Referenzartikel aufgeführt, in denen beschrieben wird, wie Typen und Typinferenz 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.
Grundlegende Typen Erfahren Sie mehr über die grundlegenden Typen, die in F# verwendet werden. Außerdem werden die entsprechenden .NET-Typen sowie die Minimal- und Höchstwerte für jeden Typ bereitgestellt.
Einheitentyp Erfahren Sie mehr über den unit Typ, bei dem es sich um einen Typ handelt, der das Fehlen eines bestimmten Werts angibt. Der Typ hat nur einen einzelnen Wert, der unit als Platzhalter fungiert, wenn kein anderer Wert vorhanden ist oder erforderlich ist.
Abkürzungen des Typs Erfahren Sie mehr über Typkürzel, bei denen es sich um alternative Namen für Typen handelt.
Typinferenz Erfahren Sie, wie der F#-Compiler die Typen von Werten, Variablen, Parametern und Rückgabewerten ableiten kann.
Casting und Umwandlungen Erfahren Sie mehr über die Unterstützung von Typkonvertierungen in F#.
Generics Erfahren Sie mehr über generische Konstrukte in F#.
Automatische Generalisierung Erfahren Sie, wie F# die Argumente und Funktionstypen automatisch generalisiert, damit sie nach Möglichkeit mit mehreren Typen arbeiten.
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 ist ein Hinweis darauf, dass ein Parameter, eine Variable oder ein Wert einen Typ aufweist, der mit dem angegebenen Typ kompatibel ist, wobei die Kompatibilität durch die Position in einer objektorientierten Hierarchie von Klassen oder Schnittstellen bestimmt wird.
Maßeinheiten Erfahren Sie mehr über Maßeinheiten. Gleitkommawerte in F# können zugeordnete Maßeinheiten aufweisen, die in der Regel verwendet werden, um Länge, Volumen, Masse usw. anzugeben.
Byrefs Erfahren Sie mehr über byref- und byref-ähnliche Typen in F#, die für die Programmierung auf niedriger Ebene verwendet werden.

Tupel, Listen, Sammlungen, Optionen

In der folgenden Tabelle sind Referenzartikel aufgeführt, in denen typen beschrieben werden, die von F# unterstützt werden.

Titel BESCHREIBUNG
Tupel Erfahren Sie mehr über Tupel, die Gruppierungen von nicht benannten, aber sortierten Werten möglicherweise unterschiedlicher Typen sind.
Auflistungen Eine Übersicht über die F#-Funktionssammlungstypen, einschließlich Typen für Arrays, Listen, Sequenzen (Seq), Zuordnungen und Sätze.
Listen Erfahren Sie mehr über Listen. Eine Liste in F# ist eine sortierte, unveränderliche Reihe von Elementen, die alle denselben Typ aufweisen.
Optionen Erfahren Sie mehr über den Optionstyp. Eine Option in F# wird verwendet, wenn ein Wert möglicherweise vorhanden ist oder nicht. Eine Option weist einen zugrunde liegenden Typ auf und kann entweder einen Wert dieses Typs enthalten oder keinen Wert aufweisen.
Arrays Erfahren Sie mehr über Arrays. Arrays sind nullbasierte, änderbare Sequenzen aufeinander folgender Datenelemente, die alle denselben Typ aufweisen.
Sequenzen Erfahren Sie mehr über Sequenzen. Eine Sequenz ist eine logische Reihe von Elementen, die alle einen Typ aufweisen. Einzelne Sequenzelemente werden nur bei Bedarf berechnet, sodass die Darstellung möglicherweise kleiner als eine Literalelementanzahl ist.
Sequenzausdrücke Erfahren Sie mehr über Sequenzausdrücke, mit denen Sie Sequenzen von Daten bei Bedarf generieren können.
Bezugszellen Erfahren Sie mehr über Referenzzellen, bei denen es sich um Speicherorte handelt, mit denen Sie veränderbare Variablen mit Referenzsemantik erstellen können.

Datensätze und Diskriminierte Vereinigungen

Die folgende Tabelle enthält Referenzartikel zur Beschreibung von Datensatz- und Diskriminierten Union-Typdefinitionen, die von F# unterstützt werden.

Titel BESCHREIBUNG
Einträge 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 Manipulation von Daten hilft.
Diskriminierte Gewerkschaften Erfahren Sie mehr über diskriminierte Gewerkschaften, die Unterstützung für Werte bieten, die einer der verschiedenen benannten Fälle entsprechen können, die jeweils mit möglicherweise unterschiedlichen Werten und Typen verwendet werden.
Strukturen Erfahren Sie mehr über Strukturen, bei denen es sich um kompakte Objekttypen handelt, die effizienter sein können als eine Klasse für Typen mit einer kleinen Menge an Daten und einfachem Verhalten.
Enumerations Enumerationen sind Typen, die über einen definierten Satz benannter Werte verfügen. Sie können sie anstelle von Literalen verwenden, um Code besser lesbar und verwaltet zu machen.

Objektprogrammierung

Die folgende Tabelle enthält Referenzartikel zur Beschreibung der F#-Objektprogrammierung.

Titel BESCHREIBUNG
Klassen Erfahren Sie mehr über Klassen, bei denen es sich um Typen handelt, die Objekte darstellen, die Eigenschaften, Methoden und Ereignisse enthalten können.
Schnittstellen Erfahren Sie mehr über Schnittstellen, die Sätze verwandter Member angeben, die andere Klassen implementieren.
abstrakte Klassen Erfahren Sie mehr über abstrakte Klassen, bei denen es sich um Klassen handelt, die einige oder alle Elemente 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.
Delegierte Erfahren Sie mehr über Stellvertretungen, die einen Funktionsaufruf als Objekt darstellen.
Vererbung Erfahren Sie mehr über die Vererbung, die zum Modellieren der Beziehung "is-a" oder der Untertypisierung in der objektorientierten Programmierung verwendet wird.
Mitglieder Erfahren Sie mehr über Elemente von F#-Objekttypen.
Parameter und Argumente Erfahren Sie mehr über die Sprachunterstützung zum Definieren von Parametern und übergeben Sie Argumente an Funktionen, Methoden und Eigenschaften. Sie enthält Informationen zum Übergeben nach Verweis.
Operatorüberladung Erfahren Sie, wie Sie arithmetische Operatoren in einer Klasse oder einem Datensatztyp und auf globaler Ebene überladen.
Objektausdrücke Erfahren Sie mehr über Objektausdrücke, bei denen es sich um Ausdrücke handelt, die neue Instanzen eines dynamisch erstellten, anonymen Objekttyps erstellen, der auf einem vorhandenen Basistyp, einer vorhandenen Schnittstelle oder einem Satz von Schnittstellen basiert.

Async, Tasks und Lazy

In der folgenden Tabelle sind Themen aufgeführt, die F#-asynchrone, Aufgaben- und faule Ausdrücke beschreiben.

Titel BESCHREIBUNG
Asynchrone Ausdrücke Erfahren Sie mehr über asynchrone Ausdrücke, mit denen Sie asynchronen Code auf eine Weise schreiben können, die sehr nah an der Art und Weise ist, wie Sie synchronen Code natürlich schreiben würden.
Aufgabenausdrücke Erfahren Sie mehr über Aufgabenausdrücke, bei denen es sich um eine alternative Methode zum Schreiben von asynchronen Code handelt, der bei der Interoperabilität mit .NET-Code verwendet oder .NET-Aufgaben erzeugt.
Faule Ausdrücke Erfahren Sie mehr über faule Ausdrücke, bei denen es sich um Berechnungen handelt, die nicht sofort ausgewertet werden, sondern stattdessen ausgewertet werden, wenn das Ergebnis tatsächlich benötigt wird.

Berechnungsausdrücke und Abfragen

In der folgenden Tabelle sind Themen aufgeführt, die F#-Berechnungsausdrücke und -abfragen beschreiben.

Titel BESCHREIBUNG
Berechnungsausdrücke Erfahren Sie mehr über Berechnungsausdrücke in F#, die eine bequeme Syntax zum Schreiben von Berechnungen bereitstellen, die mithilfe von Steuerelementflusskonstrukten und Bindungen sequenziert und kombiniert werden können. Sie können verwendet werden, um Daten, Steuerung und Nebenwirkungen in funktionalen Programmen zu verwalten.
Abfrageausdrücke Erfahren Sie mehr über Abfrageausdrücke, ein Sprachfeature, das LINQ für F# implementiert und Ihnen das Schreiben von Abfragen für eine Datenquelle oder eine aufzählbare Auflistung ermöglicht.

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

In der folgenden Tabelle sind Artikel aufgeführt, die F#-reflektierende Features beschreiben, einschließlich Attributen, Anführungszeichen nameofund Nur-Text-Formatierungen.

Titel BESCHREIBUNG
Attribute Erfahren Sie, wie F#-Attribute die Anwendung von Metadaten auf ein Programmierkonstrukt ermöglichen.
Nameof Erfahren Sie mehr über den nameof Operator, ein Metaprogrammierungsfeature, mit dem Sie den Namen eines symbols in Ihrem Quellcode erstellen können.
Anruferinformationen Erfahren Sie, wie Sie Caller Info Argument Attributes verwenden, um Aufruferinformationen aus einer Methode abzurufen.
Quellzeilen-, Datei- und Pfadbezeichner Erfahren Sie mehr über die Bezeichner __LINE__und __SOURCE_FILE____SOURCE_DIRECTORY__, die integrierte Werte sind, mit denen Sie in Ihrem Code auf die Quellzeilennummer, das Verzeichnis und den Dateinamen zugreifen können.
Codeangebote Erfahren Sie mehr über Codeangebote, ein Sprachfeature, mit dem Sie F#-Codeausdrücke programmgesteuert generieren und arbeiten können.
Nur-Text-Formatierung Erfahren Sie, wie Sie Sprintf und andere Nur-Text-Formatierungen in F#-Anwendungen und Skripts verwenden.

Typanbieter

In der folgenden Tabelle sind Artikel aufgeführt, die F#-Typanbieter beschreiben.

Titel BESCHREIBUNG
Typanbieter Erfahren Sie mehr über Typanbieter und Links zu exemplarischen Vorgehensweisen zur Verwendung der integrierten Typanbieter für den Zugriff auf Datenbanken und Webdienste.
Erstellen eines Typanbieters Erfahren Sie, wie Sie eigene F#-Typanbieter erstellen, indem Sie mehrere einfache Typanbieter untersuchen, die die grundlegenden Konzepte veranschaulichen.

F# Core Library API-Referenz

F# Core Library (FSharp.Core)-API-Referenz ist die Referenz für alle F#-Kernbibliotheksnamespaces, Module, Typen und Funktionen.

Verweistabellen

Die folgende Tabelle enthält Referenzartikel, die Tabellen mit Schlüsselwörtern, Symbolen und Literalen bereitstellen, die als Token in F# verwendet werden.

Titel BESCHREIBUNG
Schlüsselwortreferenz Enthält Links zu Informationen zu allen F#-Sprachstichwörtern.
Symbol- und Operatorreferenz Enthält eine Tabelle mit Symbolen und Operatoren, die in F# verwendet werden.

Compilergestützte Konstrukte

In der folgenden Tabelle sind Themen aufgeführt, in denen spezielle compilergestützte Konstrukte beschrieben werden.

Thema BESCHREIBUNG
Compileroptionen Beschreibt die Befehlszeilenoptionen für den F#-Compiler.
Compilerdirektiven Beschreibt die Prozessordirektiven und Compilerdirektiven, die vom F#-Compiler unterstützt werden.