F#-TypenF# Types

In diesem Thema werden die Typen beschrieben, die F# in verwendet F# werden, und wie Typen benannt und beschrieben werden.This topic describes the types that are used in F# and how F# types are named and described.

Zusammenfassung F# der TypenSummary of F# Types

Einige Typen werden als primitive Typenbetrachtet, wie z. b. der boolesche Typ bool und ganzzahlige Typen und Gleit Komma Typen mit unterschiedlichen Größen, die Typen für Bytes und Zeichen einschließen.Some types are considered primitive types, such as the Boolean type bool and integral and floating point types of various sizes, which include types for bytes and characters. Diese Typen werden in primitiven Typenbeschrieben.These types are described in Primitive Types.

Andere Typen, die in die Sprache integriert sind, umfassen Tupel, Listen, Arrays, Sequenzen, Datensätze und Unterscheidungs-Unions.Other types that are built into the language include tuples, lists, arrays, sequences, records, and discriminated unions. Wenn Sie mit anderen .NET-Sprachen vertraut sind und lernen F#, lesen Sie die Themen für die einzelnen Typen.If you have experience with other .NET languages and are learning F#, you should read the topics for each of these types. Links zu weiteren Informationen zu diesen Typen finden Sie im Abschnitt Verwandte Themen dieses Themas.Links to more information about these types are included in the Related Topics section of this topic. Diese F#spezifischen Typen unterstützen Programmier Stile, die von funktionalen Programmiersprachen gemeinsam sind.These F#-specific types support styles of programming that are common to functional programming languages. Viele dieser Typen verfügen über zugeordnete Module in F# der Bibliothek, die gängige Vorgänge für diese Typen unterstützen.Many of these types have associated modules in the F# library that support common operations on these types.

Der Typ einer Funktion enthält Informationen über die Parametertypen und den Rückgabetyp.The type of a function includes information about the parameter types and return type.

Der .NET Framework ist die Quelle von Objekttypen, Schnittstellentypen, Delegattypen und anderen.The .NET Framework is the source of object types, interface types, delegate types, and others. Sie können eigene Objekttypen genau wie in jeder anderen .NET-Sprache definieren.You can define your own object types just as you can in any other .NET language.

F# Code kann auch Aliase definieren, die benannte typabkürzungensind, die Alternative Namen für-Typen sind.Also, F# code can define aliases, which are named type abbreviations, that are alternative names for types. Sie können typabkürzungen verwenden, wenn sich der Typ in der Zukunft ändern kann, und Sie vermeiden möchten, den Code zu ändern, der vom Typ abhängt.You might use type abbreviations when the type might change in the future and you want to avoid changing the code that depends on the type. Oder Sie können eine typabkürzung als anzeigen Amen für einen Typ verwenden, der den Code leichter lesbar und verständlich machen kann.Or, you might use a type abbreviation as a friendly name for a type that can make code easier to read and understand.

F#bietet nützliche Auflistungs Typen, die mit der funktionalen Programmierung im Hinterkopf entworfen wurden.F# provides useful collection types that are designed with functional programming in mind. Mithilfe dieser Sammlungs Typen können Sie Code schreiben, der im Stil funktionaler ist.Using these collection types helps you write code that is more functional in style. Weitere Informationen finden F# Sie unter Sammlungs Typen.For more information, see F# Collection Types.

Syntax für TypenSyntax for Types

Im F# Code müssen Sie häufig die Namen von Typen schreiben.In F# code, you often have to write out the names of types. Jeder Typ verfügt über ein syntaktisches Formular, und Sie verwenden diese syntaktischen Formen in Typanmerkungen, abstrakten Methoden Deklarationen, Delegatdeklarationen, Signaturen und anderen Konstrukten.Every type has a syntactic form, and you use these syntactic forms in type annotations, abstract method declarations, delegate declarations, signatures, and other constructs. Wenn Sie ein neues Programm Konstrukt im Interpreter deklarieren, druckt der Interpreter den Namen des Konstrukts und die Syntax für seinen Typ.Whenever you declare a new program construct in the interpreter, the interpreter prints the name of the construct and the syntax for its type. Diese Syntax kann nur ein Bezeichner für einen benutzerdefinierten Typ oder ein integrierter Bezeichner wie z. b. für int oder stringsein, aber bei komplexeren Typen ist die Syntax komplexer.This syntax might be just an identifier for a user-defined type or a built-in identifier such as for int or string, but for more complex types, the syntax is more complex.

Die folgende Tabelle zeigt Aspekte der Typsyntax für F# -Typen.The following table shows aspects of the type syntax for F# types.

TypType TypsyntaxType syntax BeispieleExamples
primitiver Typprimitive type type-nametype-name int

float

string
Aggregattyp (Klasse, Struktur, Union, Datensatz, Enumeration usw.)aggregate type (class, structure, union, record, enum, and so on) type-nametype-name System.DateTime

Color
typabkürzungtype abbreviation type-abbreviation-nametype-abbreviation-name bigint
voll qualifizierter Typfully qualified type namespaces.type-namenamespaces.type-name

oderor

modules.type-namemodules.type-name

oderor

namespaces.modules.type-namenamespaces.modules.type-name
System.IO.StreamWriter
-Arrayarray Type-Name[] odertype-name[] or

Type-Name- Arraytype-name array
int[]

array<int>

int array
zweidimensionales Arraytwo-dimensional array Typname[,]type-name[,] int[,]

float[,]
dreidimensionales Arraythree-dimensional array Typname[,,]type-name[,,] float[,,]
tupletuple Type-Name1 * Type-name2 ...type-name1 * type-name2 ... (1,'b',3) hat z. b. den Typ int * char * intFor example, (1,'b',3) has type int * char * int
generischer Typgeneric type Type-Parameter Generic-Type-Nametype-parameter generic-type-name

oderor

generic-type-name<type-parameter-list>generic-type-name<type-parameter-list>
'a list

list<'a>

Dictionary<'key, 'value>
konstruierter Typ (ein generischer Typ, für den ein bestimmtes Typargument angegeben ist)constructed type (a generic type that has a specific type argument supplied) Type-Argument Generic-Type-Nametype-argument generic-type-name

oderor

generic-type-name<type-argument-list>generic-type-name<type-argument-list>
int option

string list

int ref

option<int>

list<string>

ref<int>

Dictionary<int, string>
Funktionstyp, der über einen einzelnen Parameter verfügtfunction type that has a single parameter Parameter-Typ1 -> Rückgabetypparameter-type1 -> return-type Eine Funktion, die eine int annimmt und eine string den Typ zurückgibt int -> stringA function that takes an int and returns a string has type int -> string
Funktionstyp mit mehreren Parameternfunction type that has multiple parameters Parameter-Typ1 -> Parameter-Typ2 ->...-> Rückgabetypparameter-type1 -> parameter-type2 -> ... -> return-type Eine Funktion, die eine int und eine float und eine string der den Typ zurückgibt int -> float -> stringA function that takes an int and a float and returns a string has type int -> float -> string
höhere Reihenfolge Funktion als Parameterhigher order function as a parameter (Funktionstyp)(function-type) List.map hat den Typ ('a -> 'b) -> 'a list -> 'b listList.map has type ('a -> 'b) -> 'a list -> 'b list
Delegatdelegate Delegat von " Function-Type "delegate of function-type delegate of unit -> int
flexibler Typflexible type #Type-Name#type-name #System.Windows.Forms.Control

#seq<int>
TopicTopic BeschreibungDescription
Primitive TypenPrimitive Types Beschreibt integrierte einfache Typen, z. b. ganzzahlige Typen, den booleschen Typ und Zeichen Typen.Describes built-in simple types such as integral types, the Boolean type, and character types.
Unit-TypUnit Type Beschreibt den unit Typ, einen Typ, der über einen Wert verfügt und der durch () angegeben wird. entspricht void in C# und Nothing in Visual Basic.Describes the unit type, a type that has one value and that is indicated by (); equivalent to void in C# and Nothing in Visual Basic.
TupelTuples Beschreibt den tupeltyp. dabei handelt es sich um einen Typ, der aus zugeordneten Werten eines beliebigen Typs besteht, der in Paaren, Paaren, verviereln usw. gruppiert ist.Describes the tuple type, a type that consists of associated values of any type grouped in pairs, triples, quadruples, and so on.
OptionenOptions Beschreibt den Optionstyp, einen Typ, der möglicherweise entweder einen Wert oder leer ist.Describes the option type, a type that may either have a value or be empty.
ListenLists Beschreibt Listen, bei denen es sich um eine geordnete, unveränderliche Reihe von Elementen desselben Typs handelt.Describes lists, which are ordered, immutable series of elements all of the same type.
ArraysArrays Beschreibt Arrays, bei denen es sich um geordnete Sätze änderbarer Elemente desselben Typs handelt, die einen zusammenhängenden Speicherblock belegen und eine festgelegte Größe haben.Describes arrays, which are ordered sets of mutable elements of the same type that occupy a contiguous block of memory and are of fixed size.
SequenzenSequences Beschreibt den Sequenztyp, der eine logische Reihenfolge von Werten darstellt. einzelne Werte werden nur bei Bedarf berechnet.Describes the sequence type, which represents a logical series of values; individual values are computed only as necessary.
DatensätzeRecords Beschreibt den Daten Satz Typen, ein kleines Aggregat benannter Werte.Describes the record type, a small aggregate of named values.
Unterscheidbare UnionsDiscriminated Unions Beschreibt den Unterscheidungs-Union-Typ, einen Typ, dessen Werte einen beliebigen Satz möglicher Typen aufweisen können.Describes the discriminated union type, a type whose values can be any one of a set of possible types.
FunktionenFunctions Beschreibt Funktions Werte.Describes function values.
KlassenClasses Beschreibt den Klassentyp, einen Objekttyp, der einem .net-Verweistyp entspricht.Describes the class type, an object type that corresponds to a .NET reference type. Klassentypen können Member, Eigenschaften, implementierte Schnittstellen und einen Basistyp enthalten.Class types can contain members, properties, implemented interfaces, and a base type.
StrukturenStructures Beschreibt den struct Typ, einen Objekttyp, der einem .net-Werttyp entspricht.Describes the struct type, an object type that corresponds to a .NET value type. Der struct Typ stellt in der Regel ein kleines Aggregat von Daten dar.The struct type usually represents a small aggregate of data.
SchnittstellenInterfaces Beschreibt Schnittstellentypen, bei denen es sich um Typen handelt, die eine Reihe von Membern darstellen, die bestimmte Funktionen bereitstellen, aber keine Daten enthalten.Describes interface types, which are types that represent a set of members that provide certain functionality but that contain no data. Ein Schnittstellentyp muss von einem Objekttyp implementiert werden, um nützlich zu sein.An interface type must be implemented by an object type to be useful.
DelegatenDelegates Beschreibt den Delegattyp, der eine Funktion als Objekt darstellt.Describes the delegate type, which represents a function as an object.
EnumerationenEnumerations Beschreibt Enumerationstypen, deren Werte zu einem Satz benannter Werte gehören.Describes enumeration types, whose values belong to a set of named values.
AttributeAttributes Beschreibt Attribute, die verwendet werden, um Metadaten für einen anderen Typ anzugeben.Describes attributes, which are used to specify metadata for another type.
AusnahmetypenException Types Beschreibt Ausnahmen, die Fehlerinformationen angeben.Describes exceptions, which specify error information.