Microsoft.FSharp.Core 命名空间 (F#)

此命名空间包含支持核心 F# 功能的功能,包括语言基元、运算符、特性、基元类型、字符串和格式化的 I/O。

命名空间/模块路径:Microsoft.FSharp.Core

程序集:FSharp.Core(在 FSharp.Core.dll 中)

namespace Microsoft.FSharp.Core

模块

模块

说明

模块 ExtraTopLevelOperators

无需打开模块或命名空间即可使用的其他 F# 运算符和类型。

模块 LanguagePrimitives

与 F# 语言关联的语言基元

模块 NumericLiterals

为“dddI”格式的文本提供 F# 数字文本语法的默认实现。

模块 Operators

基本 F# 运算符。 此模块会自动在所有 F# 代码中打开。

模块 OptimizedClosures

用于保存函数值调用的某些私有实现的实现模块。

模块 Option

针对选项的基本操作。

模块 Printf

数字及其他数据类型的可扩展 printf 样式格式

模块 String

用于字符串处理的函数编程运算符。 通过 StringRegex 类型中的字符串成员函数和其他功能,可使用更多的字符串操作。

类型定义

类型

说明

类型 [,,,]<'T>

四维数组,通常是从零开始的。 可以使用 System.Array 类型中的方法创建非以零开始的数组。

类型 [,,]<'T>

三维数组,通常是从零开始的。 可以使用 System.Array 类型中的方法创建非以零开始的数组。

类型 [,]<'T>

二维数组,通常是从零开始的。

类型 []<'T>

一维零始数组,书写形式为 int[]、string[] 等。

类型 AbstractClassAttribute

将此特性添加到类定义后,可使类成为抽象类,这意味着无需实现其所有方法。 不能直接构建抽象类的实例。

类型 AllowNullLiteralAttribute

将此特性添加到类型后,可以将“null”文本用于 F# 代码中的类型。 只能将此特性添加到 F# 定义的类或接口类型。

类型 AutoOpenAttribute

此特性用于两个目的。 当应用于某个程序集时,必须为其提供一个字符串参数,而此参数必须表示该程序集中的有效模块或命名空间。 引用了此程序集的被编译源代码文件将在自动打开给定路径的环境中处理。

类型 AutoSerializableAttribute

将值设置为“false”的此特性添加到某个类型后,会禁用 F# 默认情况下使该类型可序列化的行为。

类型 byref<'T>

表示 F# 代码中的托管指针。

类型 Choice<'T1,'T2,'T3,'T4,'T5,'T6,'T7>

含有 7 个选项的活动模式的帮助器类型。

类型 Choice<'T1,'T2,'T3,'T4,'T5,'T6>

含有 6 个选项的活动模式的帮助器类型。

类型 Choice<'T1,'T2,'T3,'T4,'T5>

含有 5 个选项的活动模式的帮助器类型。

类型 Choice<'T1,'T2,'T3,'T4>

含有 4 个选项的活动模式的帮助器类型。

类型 Choice<'T1,'T2,'T3>

含有 3 个选项的活动模式的帮助器类型。

类型 Choice<'T1,'T2>

含有 2 个选项的活动模式的帮助器类型。

类型 ClassAttribute

将此特性添加到某个类型后,即可使用 CLI 类来表示该类型。

类型 CLIEventAttribute

如果将此特性添加到含有事件类型的属性,该属性将作为 CLI 元数据事件进行编译,编译方法是在语法上转换为“add_EventName”和“remove_EventName”方法对。

类型 ComparisonConditionalOnAttribute

此特性用于指示,只有在泛型参数满足 F# 的“比较”约束时,泛型容器类型才会满足此约束。 例如,将此特性添加到类型定义 C<'T> 中的参数 'T 意味着,仅当类型 X 支持比较且 C<X> 为支持比较所需的所有其他前提条件都得到满足时,类型 C<X> 才会支持比较。 类型 C<'T> 仍可以用于其他类型参数,但诸如 C<(int -> int)> 这样的类型将不支持比较,因为类型 (int -> int) 为 F# 函数类型,它不支持比较。

类型 CompilationArgumentCountsAttribute

此特性由 F# 编译器自动生成,以对函数和成员进行标记,这些函数和成员接受其某些参数的部分应用,并返回剩余函数。

类型 CompilationMappingAttribute

此特性由 F# 编译器自动插入,以标记生成的 CLI 代码中的类型和方法,这些类型和方法带有指示与原始源构造的对应关系的标志。 Microsoft.FSharp.Reflection 命名空间中的函数使用此特性来将编译的构造反向映射到其原始形式。 不应从用户代码中使用此特性。

类型 CompilationRepresentationAttribute

此特性用于调整类型的运行时表示形式。 例如,可以使用此特性来指明可以对类型使用 null 表示形式。 这会影响某些构造的编译方式。

类型 CompilationRepresentationFlags

表示对 F# 类型或成员的编译表示形式所做的一次或多次调整。

类型 CompilationSourceNameAttribute

此特性由 F# 编译器自动插入,用来标记为其指定了“CompiledName”特性的方法。 不应从用户代码中使用此特性。

类型 CompiledNameAttribute

将此特性添加到 F# 模块中的值或函数定义后,会更改用于编译的 CLI 代码中的值的名称。

类型 CompilerMessageAttribute

指示应在 F# 源代码使用此构造时发出消息。

类型 CustomComparisonAttribute

通过将此特性添加到某个类型,可表明它是使用用户定义的比较实现的类型。

类型 CustomEqualityAttribute

通过将此特性添加到某个类型,可表明它是使用用户定义的相等比较实现的类型。

类型 decimal<'Measure>

十进制数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Decimal。

类型 DefaultAugmentationAttribute

将值设置为 false 的此特性添加到某个可区分联合后,会禁止为该类型的生成的 CLI 类生成标准帮助器成员测试程序、构造函数和访问器成员。

类型 DefaultValueAttribute

如果将此特性添加到字段声明,则表示不初始化该字段。 在类型检查过程中,可对以下约束进行断言:字段类型支持“null”。 如果“check”值为 false,则不对约束进行断言。

类型 EntryPointAttribute

如果将此特性添加到函数,则指示该函数是应用程序的入口点。 如果没有为 EXE 指定这种缺少情况,则将编译序列中最后一个文件中的模块绑定中的隐式初始化用作入口点。

类型 EqualityConditionalOnAttribute

此特性用于指示,只有在泛型参数满足 F# 的“相等”约束时,泛型容器类型才会满足此约束。 例如,将此特性添加到类型定义 C<'T> 中的参数 'T 意味着,仅当类型 X 支持相等比较且 C<X> 为支持相等比较所需的所有其他前提条件都得到满足时,类型 C<X> 才会支持相等比较。 类型 C<'T> 仍可以用于其他类型参数,但诸如 C<(int -> int)> 这样的类型将不支持相等比较,因为类型 (int -> int) 为 F# 函数类型,它不支持相等比较。

类型 ExperimentalAttribute

此特性用于对属于实验性库功能的一部分的值进行标记。

类型 float<'Measure>

浮点数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Double。

类型 float32<'Measure>

浮点数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Single。

类型 FSharpFunc<'T,'U>

用于表示 F# 函数值的 CLI 类型。 虽然此类型通常不会直接使用,但可以从其他 CLI 语言中使用它。

类型 FSharpInterfaceDataVersionAttribute

将此特性添加到生成的程序集,以表示数据架构的版本,该数据架构用于对附加到已编译的 F# 库的资源中的附加 F# 特定信息进行编码。

类型 FSharpTypeFunc

用于表示 F# 第一类类型函数值的 CLI 类型。 此类型供已编译的 F# 代码使用。

类型 FuncConvert

可使用委托在 F# 第一类函数值和函数的 CLI 表示形式之间来回转换的 Helper 函数。

类型 GeneralizableValueAttribute

通过将此特性添加到带有泛型参数的非函数值,可表明对构造的使用可通过类型推理获得泛型代码。

类型 ilsigptr<'T>

此类型供 F# 代码生成器内部使用。

类型 int<'Measure>

32 位有符号整数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Int32。

类型 int16<'Measure>

16 位有符号整数的类型,使用度量单位进行批注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Int16。

类型 int64<'Measure>

64 位有符号整数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Int64。

类型 InterfaceAttribute

将此特性添加到某个类型后,即可使用 CLI 接口来表示该类型。

类型 LiteralAttribute

将此特性添加到某个值后,即可将该值作为 CLI 常量文本进行编译。

类型 MeasureAnnotatedAbbreviationAttribute

将此特性添加到某个类型后,即可将该类型解释为优化的类型(当前限制为度量参数化类型)。 这只能在非常有限的条件下使用。

类型 MeasureAttribute

将此特性添加到某个类型后,即可将该类型解释为度量单位。 这只能在非常有限的条件下使用。

类型 nativeptr<'T>

表示 F# 代码中的非托管指针。

类型 NoComparisonAttribute

通过将此特性添加到某个类型,可指示此类型的比较为非正常操作。 这意味着,此类型不满足 F# 的“比较”约束。 在 F# 类型系统的边界内,这可帮助确保不会直接对此类型实例化 F# 泛型比较函数。 此特性和检查并未限制使用与此类型的基类型或子类型进行的比较。

类型 NoDynamicInvocationAttribute

此特性用于标记那些在运行时无法动态调用的值。 通常将此特性添加到其实现包括不可验证的代码的内联函数。 在这种情况下,如果动态调用内联函数,而不是将不可验证的代码包含在生成的程序集中,则为内联函数发出的方法体将引发异常。

类型 NoEqualityAttribute

通过将此特性添加到某个类型,可指示此类型的相等比较为非正常操作。 这表示该类型不满足 F#“相等性”约束。 在 F# 类型系统的边界内,这可帮助确保不会直接在此类型上实例化 F# 泛型相等性函数。 此特性和检查并未限制使用与此类型的基类型或子类型进行的比较。

类型 Option<'T>

可选值的类型。 从其他 CLI 语言中使用时,空选项为 null 值。

类型 OptionalArgumentAttribute

将自动为所有可选参数添加此特性。

类型 PrintfFormat<'Printer,'State,'Residue,'Result,'Tuple>

格式设置表达式的类型。

类型 PrintfFormat<'Printer,'State,'Residue,'Result>

格式设置表达式的类型。

类型 Ref<'T>

可变引用的类型。 使用函数 [:=] 和 [!] 获取和设置此类型的值。

类型 ReferenceEqualityAttribute

通过将此特性添加到某个记录或联合类型,可禁止自动生成该类型的“System.Object.Equals(obj)”、“System.Object.GetHashCode()”和“System.IComparable”的重写。 该类型默认情况下将使用引用相等比较。

类型 ReflectedDefinitionAttribute

将此特性添加到某个顶级值定义的 let 绑定后,即可在运行时使用实现该值的引用表达式。

类型 RequireQualifiedAccessAttribute

此特性用于指示对模块、记录或联合类型的元素的引用要求显式的限定性访问。

类型 RequiresExplicitTypeArgumentsAttribute

将此特性添加到某个类型、值或成员后,会要求在使用构造时必须显式实例化任何泛型类型参数。

类型 sbyte<'Measure>

8 位有符号整数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.SByte。

类型 SealedAttribute

将此特性添加到类定义后将使类成为密封类,这意味着就可能无法扩展或实现该类。

类型 SourceConstructFlags

指示 CLI 库中已编译的实体与 F# 源代码中的元素之间的关系。

类型 StructAttribute

将此特性添加到某个类型后,即可使用 CLI 结构来表示该类型。

类型 StructuralComparisonAttribute

通过将此特性添加到某个记录、联合、异常或结构类型,可确认自动生成该类型的“System.IComparable”的实现。

类型 StructuralEqualityAttribute

通过将此特性添加到某个记录、联合或结构类型,可确认自动生成该类型的“System.Object.Equals(obj)”和“System.Object.GetHashCode()”的重写。

类型 StructuredFormatDisplayAttribute

此特性用于标记在使用“%A”printf 格式设置模式和其他基于文本的二维显示布局时,默认情况下如何显示类型。 在此版本的 F# 中,唯一有效的值的格式为 PreText {PropertyName} PostText。 属性名称指示要计算和显示的属性,而非对象本身。

类型 Unit

只有一个值“()”的类型“unit”。 此值为特殊值,并始终使用“null”表示形式。

类型 UnverifiableAttribute

此特性用于标记其用法将导致生成不可验证的代码的值。 这些值必然会标记为“inline”,目的是确保 F# 库的实际代码中不会出现不可验证的构造,而是将这些构造复制到调用方的源代码。

类型 VolatileFieldAttribute

在将此特性添加到 F# 可变绑定后,即可将“volatile”前缀用于对字段的所有访问。

类型缩写

类型

说明

类型 array<'T>

一维零始数组,书写形式为 int[]、string[] 等。

类型 bigint

任意大整数。 类型 BigInteger 的缩写词。

类型 bool

CLI 类型 Boolean 的缩写词。

类型 byte

CLI 类型 Byte 的缩写词。

类型 char

CLI 类型 Char 的缩写词。

类型 decimal

CLI 类型 Decimal 的缩写词。

类型 double

CLI 类型 Double 的缩写词。

类型 exn

CLI 类型 Exception 的缩写词。

类型 float

CLI 类型 Double 的缩写词。

类型 float32

CLI 类型 Single 的缩写词。

类型 Format<'Printer,'State,'Residue,'Result,'Tuple>

格式设置表达式的类型。

类型 Format<'Printer,'State,'Residue,'Result>

格式设置表达式的类型。

类型 int

CLI 类型 Int32 的缩写词。

类型 int16

CLI 类型 Int16 的缩写词。

类型 int32

CLI 类型 Int32 的缩写词。

类型 int64

CLI 类型 Int64 的缩写词。

类型 int8

CLI 类型 SByte 的缩写词。

类型 nativeint

CLI 类型 IntPtr 的缩写词。

类型 obj

CLI 类型 Object 的缩写词。

类型 option<'T>

可选值的类型。 从其他 CLI 语言中使用时,空选项为 null 值。

类型 ref<'T>

可变引用的类型。 使用函数 [:=] 和 [!] 获取和设置此类型的值。

类型 sbyte

CLI 类型 SByte 的缩写词。

类型 single

CLI 类型 Single 的缩写词。

类型 string

CLI 类型 String 的缩写词。

类型 uint16

CLI 类型 UInt16 的缩写词。

类型 uint32

CLI 类型 UInt32 的缩写词。

类型 uint64

CLI 类型 UInt64 的缩写词。

类型 uint8

CLI 类型 Byte 的缩写词。

类型 unativeint

CLI 类型 UIntPtr 的缩写词。

类型 unit

只有一个值“()”的类型“unit”。 此值为特殊值,并始终使用“null”表示形式。

异常

异常

说明

异常 MatchFailureException

不详尽的匹配失败将引发 MatchFailureException 异常

请参见

其他资源

F# 核心库参考