Schlüsselwortreferenz

Dieses Thema enthält Links zu Informationen über alle F#-Sprachschlüsselwörter.

Tabelle mit F#-Schlüsselwörtern

Die folgende Tabelle zeigt alle F#-Schlüsselwörter in alphabetischer Reihenfolge zusammen mit kurzen Beschreibungen und Links zu relevanten Themen, die weitere Informationen enthalten.

Schlüsselwort Link BESCHREIBUNG
abstract Mitglieder

Abstrakte Klassen
Gibt eine Methode an, die entweder im Typ, in dem sie deklariert wird, über keine Implementierung verfügt oder die virtuell ist und über eine Standardimplementierung verfügt.
and let-Bindungen

Datensätze

Mitglieder

Einschränkungen
Wird in gegenseitig rekursiven Bindungen und Datensätzen, in Eigenschaftendeklarationen und bei mehreren Beschränkungen in Bezug auf generische Parameter verwendet.
as Klassen

Mustervergleich
Wird verwendet, um dem aktuellen Klassenobjekt einen Objektnamen zu geben. Wird auch verwendet, um einem ganzen Muster innerhalb eines Musterabgleichs einen Namen zu geben.
assert Assertionen Wird verwendet, um den Code während des Debuggens zu überprüfen.
base Klassen

Vererbung
Wird als Name des Basisklassenobjekts verwendet.
begin Ausführliche Syntax Gibt in ausführlicher Syntax den Start eines Codeblocks an.
class Klassen Gibt in ausführlicher Syntax den Beginn einer Klassendefinition an.
default Mitglieder Gibt eine Implementierung einer abstrakten Methode an; wird gemeinsam mit einer abstrakten Methodendeklaration zum Erstellen einer virtuellen Methode verwendet.
delegate Delegaten Wird verwendet, um einen Delegaten zu deklarieren.
do do-Bindungen

Schleifen: for...to-Ausdruck

Schleifen: for...in-Ausdruck

Schleifen: while...do-Ausdruck
Wird in Schleifenkonstrukten oder zum Ausführen von imperativem Code verwendet.
done Ausführliche Syntax Gibt in ausführlicher Syntax das Ende eines Codeblocks in einem Schleifenausdruck an.
downcast Umwandlung und Konvertierungen Wird zum Konvertieren in einen Typ verwendet, der in Vererbungskette niedriger ist.
downto Schleifen: for...to-Ausdruck Wird in einem for-Ausdruck beim Rückwährtszählen verwendet.
elif Bedingte Ausdrücke: if...then...else Wird in bedingten Verzweigungskonstrukten verwendet. Eine Kurzform von else if.
else Bedingte Ausdrücke: if...then...else Wird in bedingten Verzweigungskonstrukten verwendet.
end Strukturen

Unterscheidungs-Unions

Datensätze

Typerweiterungen

Ausführliche Syntax
Gibt in Typdefinitionen und Typerweiterungen das Ende eines Abschnitts von Memberdefinitionen an.

Wird in ausführlicher Syntax verwendet, um das Ende eines Codeblocks anzugeben, der mit dem Schlüsselwort begin beginnt.
exception Ausnahmebehandlung

Ausnahmetypen
Wird verwendet, um einen Ausnahmetyp zu deklarieren.
extern Externe Funktionen Gibt an, dass ein deklariertes Programmelement in einem anderen Binärwert oder einer anderen Assembly definiert ist.
false Primitive Typen Wird als boolesches Literal verwendet.
finally Ausnahmen: Der try...finally-Ausdruck Wird zusammen mit try verwendet, um einen Codeblock bereitzustellen, der unabhängig davon ausgeführt wird, ob eine Ausnahme auftritt.
fixed Fest Wird verwendet, um einen Zeiger auf dem Stapel anzuheften, um zu verhindern, dass er per Garbage Collection entsorgt wird.
for Schleifen: for...to-Ausdruck

Schleifen: for...in-Ausdruck
Wird in Schleifenkonstrukten verwendet.
fun Lambdaausdrücke: das fun-Schlüsselwort Wird in Lambdaausdrücken verwendet, auch als anonyme Funktionen bekannt.
function Vergleichsausdrücke

Lambdaausdrücke: das Schlüsselwort „fun“
Wird als kürzere Alternative zum Schlüsselwort fun und als match-Ausdruck in einem Lambdaausdruck verwendet, der über Musterabgleich für ein einzelnes Argument verfügt.
global Namespaces Wird verwendet, um auf den .NET-Namespace der obersten Ebene zu verweisen.
if Bedingte Ausdrücke: if...then...else Wird in bedingten Verzweigungskonstrukten verwendet.
in Schleifen: for...in-Ausdruck

Ausführliche Syntax
Wird für Sequenzausdrücke und in ausführlicher Syntax zum Trennen von Ausdrücken aus Bindungen verwendet.
inherit Vererbung Wird verwendet, um eine Basisklasse oder Basisschnittstelle festzulegen.
inline Funktionen

Inlinefunktionen
Wird verwendet, um eine Funktion anzugeben, die direkt in den Code der aufrufenden Funktion integriert werden soll.
interface Schnittstellen Wird verwendet, um Schnittstellen zu deklarieren und implementieren.
internal Zugriffssteuerung Wird verwendet, um festzulegen, dass ein Member innerhalb einer Assembly sichtbar ist, außerhalb jedoch nicht.
lazy Nicht strikte Ausdrücke Wird verwendet, um einen Ausdruck anzugeben, die nur ausgeführt wird, wenn ein Ergebnis erforderlich ist.
let let-Bindungen Wird verwendet, um einen Namen einem Wert oder einer Funktion zuzuordnen oder daran zu binden.
let! Asynchrone Ausdrücke

Taskausdrücke

Berechnungsausdrücke
Wird in asynchronen Ausdrücken verwendet, um einen Namen an das Ergebnis einer asynchronen Berechnung zu binden, oder wird in anderen Berechnungsausdrücken verwendet, um einen Namen an ein Ergebnis zu binden, das den Berechnungstyp hat.
match Vergleichsausdrücke Wird zum Verzweigen verwendet, indem ein Wert mit einem Muster verglichen wird.
match! Berechnungsausdrücke Wird verwendet, um einen Aufruf an einen Berechnungsausdruck und einen Musterabgleich inline mit dessen Ergebnis einzubinden.
member Mitglieder Wird verwendet, um eine Eigenschaft oder Methode in einem Objekttypen zu deklarieren.
module Module Wird verwendet, um einen Namen einer Gruppe zugehöriger Typen, Werte und Funktionen zuzuordnen, um ihn logisch von anderem Code zu trennen.
mutable let-Bindungen Wird verwendet, um eine Variable zu deklarieren, d. h. einen veränderlichen Wert.
namespace Namespaces Wird verwendet, um einen Namen einer Gruppe zugehöriger Typen und Module zuzuordnen, um ihn logisch von anderem Code zu trennen.
new Konstruktoren

Einschränkungen
Dient zum Deklarieren, Definieren oder Aufrufen eines Konstruktors, der ein Objekt erstellt oder erstellen kann.

Wird auch in generischen Parametereinschränkungen verwendet, um anzugeben, dass ein Typ über einen bestimmten Konstruktor verfügen muss.
not Symbol- und Operatorenreferenz

Einschränkungen
Eigentlich kein Schlüsselwort. Allerdings wird not struct zusammen als generische Parametereinschränkung verwendet.
null NULL-Werte

Einschränkungen
Gibt das Fehlen eines Objekts an.

Wird auch in generischen Parametereinschränkungen verwendet.
of Unterscheidungs-Unions

Delegaten

Ausnahmetypen
Wird in Unterscheidungs-Unions verwendet, um den Typ der Wertekategorien anzugeben, sowie in Delegaten und Ausnahmedeklarationen.
open Importdeklarationen: Das open-Schlüsselwort Wird verwendet, um den Inhalt eines Namespace oder Moduls ohne Qualifizierung verfügbar zu machen.
or Symbol- und Operatorenreferenz

Einschränkungen
Wird mit booleschen Bedingungen als boolescher or-Operator verwendet. Entspricht ||.

Wird auch in Membereinschränkungen verwendet.
override Mitglieder Wird verwendet, um eine Version einer abstrakten oder virtuellen Methode zu implementieren, die sich von der Basisversion unterscheidet.
private Zugriffssteuerung Beschränkt den Zugriff eines Members auf Code im gleichen Typ oder Modul.
public Zugriffssteuerung Lässt von einer Position außerhalb des Typs den Zugriff auf ein Member zu.
rec Funktionen Wird verwendet, um anzugeben, dass eine Funktion rekursiv ist.
return Berechnungsausdrücke

Asynchrone Ausdrücke

Taskausdrücke
Wird verwendet, um einen Wert anzugeben, der als Ergebnis eines Berechnungsausdrucks geliefert werden soll.
return! Berechnungsausdrücke

Asynchrone Ausdrücke

Taskausdrücke
Wird verwendet, um einen Berechnungsausdruck anzugeben, der bei Auswertung das Ergebnis des enthaltenden Berechnungsausdrucks bereitstellt.
select Abfrageausdrücke Wird in Abfrageausdrücken verwendet, um anzugeben, welche Felder oder Spalten extrahiert werden sollen. Beachten Sie, dass dies ein kontextabhängiges Schlüsselwort ist, was bedeutet, dass es sich nicht tatsächlich um ein reserviertes Wort handelt und es sich nur im entsprechenden Kontext wie ein Schlüsselwort verhält.
static Mitglieder Wird verwendet, um eine Methode oder Eigenschaft anzugeben, die ohne eine Instanz eines Typs aufgerufen werden kann, oder einen Wertemember, der für alle Instanzen eines Typs freigegeben wird.
struct Strukturen

Tupel

Einschränkungen
Wird verwendet, um einen Strukturtyp zu deklarieren.

Wird verwendet, um ein Strukturtupel anzugeben.

Wird auch in generischen Parametereinschränkungen verwendet.

Wird für die OCaml-Kompatibilität in Moduldefinitionen verwendet.
then Bedingte Ausdrücke: if...then...else

Konstruktoren
Wird in bedingten Ausdrücken verwendet.

Wird auch verwendet, um nach der Objektkonstruktion Nebeneffekte auszuführen.
to Schleifen: for...to-Ausdruck Wird in for-Schleifen zum Angeben eines Bereichs verwendet.
true Primitive Typen Wird als boolesches Literal verwendet.
try Ausnahmen: Der try...with-Ausdruck

Ausnahmen: Der try...finally-Ausdruck
Wird verwendet, um einen Codeblock einzuführen, der möglicherweise eine Ausnahme generiert. Wird zusammen mit with oder finally verwendet.
type F#-Typen

Klassen

Datensätze

Strukturen

Enumerationen

Unterscheidungs-Unions

Typabkürzungen

Maßeinheiten
Wird verwendet, um Klassen, Datensätze, Strukturen, Unterscheidungs-Unions, Enumerationstypen, Maßeinheiten oder Typenabkürzungen zu deklarieren.
upcast Umwandlung und Konvertierungen Wird zum Konvertieren in einen Typ verwendet, der in Vererbungskette höher ist.
use Ressourcenverwaltung: Das use-Schlüsselwort Wird anstelle von let für Werte verwendet, für die Dispose aufgerufen werden muss, um Ressourcen freizugeben.
use! Berechnungsausdrücke

Asynchrone Ausdrücke

Taskausdrücke
Wird anstelle von let! in asynchronen Ausdrücken und anderen Berechnungsausdrücken für Werte verwendet, für die Dispose aufgerufen werden muss, um Ressourcen freizugeben.
val Explizite Felder: Das val-Schlüsselwort

Signaturen

Mitglieder
Wird in einer Signatur verwendet, um einen Wert anzugeben, oder in wenigen Situationen in einem Typ, um ein Member zu deklarieren.
void Primitive Typen Gibt den .NET-Typ void an. Wird bei der Interoperabilität mit anderen .NET-Sprachen verwendet.
when Einschränkungen Wird für boolesche Bedingungen (when guards) bei Musterabgleichen sowie zum Einführen einer Einschränkungsklausel für einen generischen Typparameter verwendet.
while Schleifen: while...do-Ausdruck Führt ein Schleifenkonstrukt ein.
with Vergleichsausdrücke

Objektausdrücke

Kopieren und Aktualisieren von Datensatzausdrücken

Typerweiterungen

Ausnahmen: Der try...with-Ausdruck
Wird zusammen mit dem Schlüsselwort match in Musterabgleichsausdrücken verwendet. Wird auch in Objektausdrücken, Datensatzkopieausdrücken und Typerweiterungen verwendet, um Memberdefinitionen und Ausnahmehandler einzuführen.
yield Listen, Arrays, Sequenzen Wird in einem Listen-, Array- oder Sequenzausdruck zum Generieren eines Werts für eine Sequenz verwendet. Kann in der Regel weggelassen werden, da dies in den meisten Situationen implizit ist.
yield! Berechnungsausdrücke

Asynchrone Ausdrücke

Taskausdrücke
Wird in einem Berechnungsausdruck zum Anhängen des Ergebnisses eines bestimmten Berechnungsausdrucks für eine Ergebnisauflistung für den enthaltenden Berechnungsausdruck verwendet.
const Typanbieter Typanbieter ermöglichen die Verwendung von const als Schlüsselwort, um ein konstantes Literal als Typparameterargument anzugeben.

Die folgenden Token sind in F# reserviert, da sie Schlüsselwörter in der OCaml-Sprache sind:

  • asr
  • land
  • lor
  • lsl
  • lsr
  • lxor
  • mod
  • sig

Wenn Sie die Compileroption --mlcompatibility verwenden, stehen die obigen Schlüsselwörter zur Verwendung als Bezeichner zur Verfügung.

Die folgenden Token sind als Schlüsselwörter für die zukünftige Erweiterung von F# reserviert:

  • break
  • checked
  • component
  • const
  • constraint
  • continue
  • event
  • external
  • include
  • mixin
  • parallel
  • process
  • protected
  • pure
  • sealed
  • tailcall
  • trait
  • virtual

Die folgenden Token waren einst als Schlüsselwörter reserviert, wurden aber in F# 4.1 veröffentlicht , sodass Sie sie jetzt als Bezeichner verwenden können:

Schlüsselwort `Reason`
method Verwenden Sie member, um Methoden einzuführen.
constructor Verwenden Sie new, um Konstruktoren einzuführen.
atomic Bezogen auf die Marotte in Bezug auf den Transaktionsspeicher um 2006. Dies wäre jetzt ein bibliotheksdefinierter Berechnungsausdruck.
eager Ist nicht mehr erforderlich; ursprünglich sollte let eager einem möglichen let lazy entsprechen.
object Muss nicht reserviert werden.
recursive Verwenden Sie rec.
functor Wenn F# parametrisierte Module hinzugefügt hat, verwenden Sie module M(args) = ....
measure Das [<Measure>]-Attribut reicht aus.
volatile Das [<Volatile>]-Attribut reicht aus.

Siehe auch