F#-SprachreferenzF# Language Reference

Dieser Abschnitt ist ein Verweis auf die F#-Sprache, eine Programmiersprache Zielversion .NET.This section is a reference to the F# language, a multi-paradigm programming language targeting .NET. Die Sprache F# unterstützt funktionale, objektorientierte und imperative Programmiermodelle.The F# language supports functional, object-oriented and imperative programming models.

F#-TokenF# Tokens

Die folgende Tabelle enthält Referenzthemen, die Tabellen der Schlüsselwörter, Symbole und Literale bereitstellen, die als Token in F# verwendet werden.The following table shows reference topics that provide tables of keywords, symbols and literals used as tokens in F#.

TitelTitle BeschreibungDescription
SchlüsselwortreferenzKeyword Reference Enthält Links zu Informationen über alle F#-Schlüsselwörter.Contains links to information about all F# language keywords.
Symbol- und OperatorenreferenzSymbol and Operator Reference Enthält eine Tabelle mit Symbolen und Operatoren, die in der Sprache F# verwendet werden.Contains a table of symbols and operators that are used in the F# language.
LiteraleLiterals Beschreibt die Syntax für literale Werte in F# und wie Typinformationen für F#-Literale angegeben werden.Describes the syntax for literal values in F# and how to specify type information for F# literals.

F#-SprachkonzepteF# Language Concepts

Die folgende Tabelle listet die verfügbare Referenzthemen auf, die Sprachkonzepte beschreiben.The following table shows reference topics available that describe language concepts.

TitelTitle BeschreibungDescription
FunktionenFunctions Funktionen sind die grundlegende Einheit für die Ausführung des Programms in einer beliebigen Programmiersprache.Functions are the fundamental unit of program execution in any programming language. 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.As in other languages, an F# function has a name, can have parameters and take arguments, and has a body. 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# also supports functional programming constructs such as treating functions as values, using unnamed functions in expressions, composition of functions to form new functions, curried functions, and the implicit definition of functions by way of the partial application of function arguments.
F#-TypenF# Types Beschreibt die Typen, die in F# verwendet werden und wie F#-Typen benannt und beschrieben werden.Describes the types that are used in F# and how F# types are named and described.
TypableitungType Inference Beschreibt, wie der F#-Compiler die Typen von Werten, Variablen, Parameter und Rückgabewerte herleitet.Describes how the F# compiler infers the types of values, variables, parameters and return values.
Automatische VerallgemeinerungAutomatic Generalization Beschreibt generische Konstrukte in F#.Describes generic constructs in F#.
VererbungInheritance Beschreibt die Vererbung, die zur Modellierung der „ist-ein“-Beziehung oder von Untertypen in der objektorientierten Programmierung verwendet wird.Describes inheritance, which is used to model the "is-a" relationship, or subtyping, in object-oriented programming.
MitgliederMembers Beschreibt Member von F#-Objekttypen.Describes members of F# object types.
Parameter und ArgumenteParameters and Arguments Beschreibt die Sprachunterstützung zum Definieren von Parametern und zum Übergeben von Argumenten an Funktionen, Methoden und Eigenschaften.Describes language support for defining parameters and passing arguments to functions, methods, and properties. Enthält Informationen zur Übergabe als Verweis.It includes information about how to pass by reference.
OperatorüberladungOperator Overloading Beschreibt, wie arithmetische Operatoren in einer Klasse oder einem Datensatztyp sowie auf globaler Ebene überladen werden.Describes how to overload arithmetic operators in a class or record type, and at the global level.
Umwandlung und KonvertierungenCasting and Conversions Beschreibt die Unterstützung für Typumwandlungen in F#.Describes support for type conversions in F#.
ZugriffssteuerungAccess Control Beschreibt die Zugriffssteuerung in F#.Describes access control in F#. Zugriffssteuerung beschreibt, wie deklariert wird, welche Clients bestimmte Programmelemente verwenden können, z.B. Typen, Methoden, Funktionen usw.Access control means declaring what clients are able to use certain program elements, such as types, methods, functions and so on.
MustervergleichPattern Matching 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.Describes patterns, which are rules for transforming input data that are used throughout the F# language to extract compare data with a pattern, decompose data into constituent parts, or extract information from data in various ways.
Aktive MusterActive Patterns Beschreibt aktive Muster.Describes active patterns. Mit aktiven Mustern können Sie benannte Partitionen definieren, die Eingabedaten unterteilen.Active patterns enable you to define named partitions that subdivide input data. Mit aktiven Mustern können Sie Daten benutzerdefiniert für jede Partition zerlegen.You can use active patterns to decompose data in a customized manner for each partition.
AssertionenAssertions Beschreibt den Ausdruck assert, der eine Debugfunktion zum Testen eines Ausdrucks ist.Describes the assert expression, which is a debugging feature that you can use to test an expression. Bei einem Fehler im Debugmodus generiert eine Assertion ein Dialogfeld „Systemfehler“.Upon failure in Debug mode, an assertion generates a system error dialog box.
AusnahmebehandlungException Handling Enthält Informationen über die Unterstützung für die Ausnahmebehandlung in der Sprache F#.Contains information about exception handling support in the F# language.
Attributeattributes Beschreibt die Attribute, mit denen Metadaten auf ein Programmierungskonstrukt angewendet werden können.Describes attributes, which enable metadata to be applied to a programming construct.
Ressourcenverwaltung: Das use-SchlüsselwortResource Management: The use Keyword Beschreibt die Schlüsselwörter use und using, die die Initialisierung und Freigabe von Ressourcen steuern können.Describes the keywords use and using, which can control the initialization and release of resources
Namespacesnamespaces Beschreibt die Namespaceunterstützung in F#.Describes namespace support 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.A namespace lets you organize code into areas of related functionality by enabling you to attach a name to a grouping of program elements.
ModuleModules Beschreibt Module.Describes modules. Ein F#-Modul ist eine Gruppierung von F#-Code, z.B. Werte, Typen und Funktionswerte in einem F#-Programm.An F# module is a grouping of F# code, such as values, types, and function values, in an F# program. Das Gruppieren von Code in Modulen hilft dabei, verwandten Code zusammen zu halten und Namenskonflikte in Ihrem Programm zu vermeiden.Grouping code in modules helps keep related code together and helps avoid name conflicts in your program.
Importdeklarationen: Das open-SchlüsselwortImport Declarations: The open Keyword Beschreibt, wie open funktioniert.Describes how open works. Eine Importdeklaration gibt ein Modul oder einen Namespace an, auf dessen Elemente Sie ohne Angabe eines vollqualifizierten Namens verweisen können.An import declaration specifies a module or namespace whose elements you can reference without using a fully qualified name.
SignaturenSignatures Beschreibt Signaturen und Signaturdateien.Describes signatures and signature files. Eine Signaturdatei enthält Informationen zu den öffentlichen Signaturen einer Reihe von F#-Programmelementen wie Typen, Namespaces und Modulen.A signature file contains information about the public signatures of a set of F# program elements, such as types, namespaces, and modules. Mit ihr kann der Zugriff auf diese Programmelemente angegeben werden.It can be used to specify the accessibility of these program elements.
XML-DokumentationXML Documentation Beschreibt die Unterstützung für das Generieren von Dokumentationsdateien für XML-Dokumentkommentare, auch bekannt als Kommentare mit drei Schrägstrichen.Describes support for generating documentation files for XML doc comments, also known as triple slash comments. Sie können die Dokumentation von Codekommentaren im Code in F# genau so wie in anderen .NET-Sprachen erstellen.You can produce documentation from code comments in F# just as in other .NET languages.
Ausführliche SyntaxVerbose Syntax Beschreibt die Syntax für F#-Konstrukte, wenn die einfache Syntax nicht aktiviert ist.Describes the syntax for F# constructs when lightweight syntax is not enabled. Ausführliche Syntax wird durch die #light "off"-Direktive ganz oben in der Codedatei beschrieben.Verbose syntax is indicated by the #light "off" directive at the top of the code file.

F#-TypenF# Types

Die folgende Tabelle enthält verfügbare Referenzthemen, die von F# unterstützte Typen beschreiben.The following table shows reference topics available that describe types supported by the F# language.

TitelTitle BeschreibungDescription
Wertevalues 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.Describes values, which are immutable quantities that have a specific type; values can be integral or floating point numbers, characters or text, lists, sequences, arrays, tuples, discriminated unions, records, class types, or function values.
Primitive TypenPrimitive Types Beschreibt die grundlegenden primitiven Typen, die in der Sprache F# verwendet werden.Describes the fundamental primitive types that are used in the F# language. Darüber hinaus werden die entsprechenden Typen in .NET und die minimalen und maximalen Werte für jeden Typ bereitgestellt.It also provides the corresponding .NET types and the minimum and maximum values for each type.
Unit-TypUnit Type 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.Describes the unit type, which is a type that indicates the absence of a specific value; the unit type has only a single value, which acts as a placeholder when no other value exists or is needed.
ZeichenfolgenStrings Beschreibt Zeichenfolgen in F#.Describes strings in F#. Die string-Typ stellt unveränderlichen Text als eine Sequenz von Unicode-Zeichen dar.The string type represents immutable text, as a sequence of Unicode characters. string ist ein Alias für System.String in .NET Framework.string is an alias for System.String in the .NET Framework.
TupelTuples Beschreibt Tupel, die Gruppierungen unbenannter aber sortierter Werte möglicher unterschiedlicher Typen sind.Describes tuples, which are groupings of unnamed but ordered values of possibly different types.
F#-AuflistungstypenF# Collection Types Eine Übersicht der funktionalen Auflistungstypen von F#, einschließlich Typen für Arrays, Listen, Sequenzen (seq), Zuordnungen und Sätzen.An overview of the F# functional collection types, including types for arrays, lists, sequences (seq), maps, and sets.
ListenLists Beschreibt Listen.Describes lists. Eine Liste in F# stellt eine geordnete, unveränderliche Reihe von Elementen desselben Typs dar.A list in F# is an ordered, immutable series of elements all of the same type.
OptionenOptions Beschreibt den Optionstyp.Describes the option type. Eine Option in F# wird verwendet, wenn ein Wert möglicherweise vorhanden oder nicht vorhanden ist.An option in F# is used when a value may or may not exist. Eine Option verfügt über einen zugrunde liegenden Typ und enthält möglicherweise einen Wert dieses Typs oder keinen Wert.An option has an underlying type and may either hold a value of that type or it may not have a value.
SequenzenSequences Beschreibt Sequenzen.Describes sequences. Eine Sequenz ist eine logische Reihe von Elementen eines einzigen Typs.A sequence is a logical series of elements all of one type. Einzelne Sequenzelemente werden nur bei Bedarf berechnet, damit die Darstellung möglicherweise kleiner ist, als die Anzahl des Literal-Elements angibt.Individual sequence elements are only computed if required, so the representation may be smaller than a literal element count indicates.
ArraysArrays Beschreibt Arrays.Describes arrays. Arrays sind nullbasierte, änderbare Sequenzen fester Größe von aufeinander folgenden Datenelementen, die alle den gleichen Typ aufweisen.Arrays are fixed-size, zero-based, mutable sequences of consecutive data elements, all of the same type.
DatensätzeRecords Beschreibt Datensätze.Describes records. Datensätze stellen einfache Aggregate benannter Werte dar, optional mit Membern.Records represent simple aggregates of named values, optionally with members.
Unterscheidbare UnionsDiscriminated 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.Describes discriminated unions, which provides support for values which may be one of a variety of named cases, each with possibly different values and types.
EnumerationenEnumerations Beschreibt, dass Enumerationen Typen sind, die über einen definierten Satz benannter Werte verfügen.Describes enumerations are types that have a defined set of named values. Sie können diese anstelle von Literalen verwenden, um Code lesbarer und verwaltbarer zu machen.You can use them in place of literals to make code more readable and maintainable.
ReferenzzellenReference Cells Beschreibt Referenzzellen, die Speicherorte sind, die Ihnen ermöglichen, änderbare Werte mit Verweissemantik zu erstellen.Describes reference cells, which are storage locations that enable you to create mutable variables with reference semantics.
TypabkürzungenType Abbreviations Beschreibt Typabkürzungen, die alternative Namen für Typen sind.Describes type abbreviations, which are alternate names for types.
KlassenClasses Beschreibt Klassen, die Typen sind, die Objekte darstellen. Diese können über Eigenschaften, Methoden und Ereignisse verfügen.Describes classes, which are types that represent objects that can have properties, methods, and events.
StrukturenStructures 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.Describes structures, which are compact object types that can be more efficient than a class for types that have a small amount of data and simple behavior.
SchnittstellenInterfaces Beschreibt die Schnittstellen, die Gruppen von verwandten Elementen angeben, die von anderen Klassen implementiert werden.Describes interfaces, which specify sets of related members that other classes implement.
Abstrakte KlassenAbstract Classes Beschreibt abstrakte Klassen, die Klassen sind, die einige oder alle Member nicht implementiert lassen, damit Implementierungen von abgeleiteten Klassen bereitgestellt werden können.Describes abstract classes, which are classes that leave some or all members unimplemented, so that implementations can be provided by derived classes.
TyperweiterungenType Extensions Beschreibt Typerweiterungen, mit denen Sie einem zuvor definierten Objekttyp neue Member hinzufügen können.Describes type extensions, which let you add new members to a previously defined object type.
Flexible TypenFlexible Types Beschreibt flexible Typen.Describes flexible types. 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.A flexible type annotation is an indication that a parameter, variable or value has a type that is compatible with type specified, where compatibility is determined by position in an object-oriented hierarchy of classes or interfaces.
DelegatenDelegates Beschreibt Delegaten, die einen Funktionsaufruf als Objekt darstellen.Describes delegates, which represent a function call as an object.
MaßeinheitenUnits of Measure Beschreibt Maßeinheiten.Describes units of measure. Gleitkommawerte in F# können zugeordnete Maßeinheiten besitzen, die in der Regel verwendet werden, um Länge, Volumen, Masse und usw. anzugeben.Floating point values in F# can have associated units of measure, which are typically used to indicate length, volume, mass, and so on.
TypanbieterType Providers Beschreibt Typanbieter und stellt Links zu exemplarischen Vorgehensweisen zur Verwendung des integrierten Typanbieters bereit, um auf Datenbanken und Webdienste zuzugreifen.Describes type provides and provides links to walkthroughs on using the built-in type providers to access databases and web services.

F#-AusdrückeF# Expressions

Die folgende Tabelle enthält Themen, in denen F#-Ausdrücke beschrieben werden.The following table lists topics that describe F# expressions.

TitelTitle BeschreibungDescription
Bedingte Ausdrücke: if...then...elseConditional Expressions: 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.Describes the if...then...else expression, which runs different branches of code and also evaluates to a different value depending on the Boolean expression given.
VergleichsausdrückeMatch Expressions Beschreibt den match-Ausdruck, der die Verzweigungssteuerung bereitstellt, die auf dem Vergleich eines Ausdrucks mit einer Reihe von Mustern basiert.Describes the match expression, which provides branching control that is based on the comparison of an expression with a set of patterns.
Schleifen: for...to-AusdruckLoops: for...to Expression Beschreibt den for...to-Ausdruck, der zum Durchlaufen einer Schleife eines Wertebereichs einer Schleifenvariable verwendet wird.Describes the for...to expression, which is used to iterate in a loop over a range of values of a loop variable.
Schleifen: for...in-AusdruckLoops: for...in Expression 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.Describes the for...in expression, a looping construct that is used to iterate over the matches of a pattern in an enumerable collection such as a range expression, sequence, list, array, or other construct that supports enumeration.
Schleifen: while...do-AusdruckLoops: while...do Expression Beschreibt den while...do-Ausdruck, der verwendet wird, um iterative Ausführung (Schleifen) auszuführen, während eine bestimmte Testbedingung erfüllt ist.Describes the while...do expression, which is used to perform iterative execution (looping) while a specified test condition is true.
ObjektausdrückeObject Expressions 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.Describes object expressions, which are expressions that create new instances of a dynamically created, anonymous object type that is based on an existing base type, interface, or set of interfaces.
Verzögerte BerechnungenLazy Computations Beschreibt verzögerte Berechnungen, was Berechnungen sind, die nicht sofort ausgewertet werden, sondern erst dann, wenn das Ergebnis tatsächlich benötigt wird.Describes lazy computations, which are computations that are not evaluated immediately, but are instead evaluated when the result is actually needed.
BerechnungsausdrückeComputation Expressions 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.Describes computation expressions in F#, which provide a convenient syntax for writing computations that can be sequenced and combined using control flow constructs and bindings. 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.They can be used to provide a convenient syntax for monads, a functional programming feature that can be used to manage data, control and side effects in functional programs. Ein Typ eines Berechnungsausdrucks, der asynchrone Workflow, bietet Unterstützung für asynchrone und gleichzeitige Berechnungen.One type of computation expression, the asynchronous workflow, provides support for asynchronous and parallel computations. Weitere Informationen finden Sie unter Asynchrone Workflows.For more information, see Asynchronous Workflows.
Asynchrone WorkflowsAsynchronous 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.Describes asynchronous workflows, a language feature that lets you write asynchronous code in a way that is very close to the way you would naturally write synchronous code.
Zitieren von CodeCode Quotations Beschreibt Codezitate, eine Sprachfunktion, die das programmgesteuerte Generieren und Arbeiten mit F#-Codeausdrücken ermöglicht.Describes code quotations, a language feature that enables you to generate and work with F# code expressions programmatically.
AbfrageausdrückeQuery Expressions 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.Describes query expressions, a language feature that implements LINQ for F# and enables you to write queries against a data source or enumerable collection.

Vom Compiler unterstützte KonstrukteCompiler-supported Constructs

Die folgende Tabelle enthält Themen, die bestimmte compilerunterstützte Konstrukte enthalten.The following table lists topics that describe special compiler-supported constructs.

ThemaTopic BeschreibungDescription
CompileroptionenCompiler Options Beschreibt die Befehlszeilenoptionen für den F#-Compiler.Describes the command-line options for the F# compiler.
CompileranweisungenCompiler Directives Beschreibt Prozessor- und Compileranweisungen.Describes processor directives and compiler directives.
Quellzeilen-, Datei- und PfadbezeichnerSource Line, File, and Path Identifiers 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.Describes the identifiers __LINE__, __SOURCE_DIRECTORY__ and __SOURCE_FILE__, which are built-in values that enable you to access the source line number, directory and file name in your code.

Siehe auchSee Also

Visual F#Visual F#