Microsoft.FSharp.Core 命名空间 (F#)
此命名空间包含支持核心 F# 功能的功能,包括语言基元、运算符、特性、基元类型、字符串和格式化的 I/O。
命名空间/模块路径:Microsoft.FSharp.Core
程序集:FSharp.Core(在 FSharp.Core.dll 中)
namespace Microsoft.FSharp.Core
模块
模块 |
说明 |
---|---|
无需打开模块或命名空间即可使用的其他 F# 运算符和类型。 |
|
与 F# 语言关联的语言基元 |
|
为“dddI”格式的文本提供 F# 数字文本语法的默认实现。 |
|
模块 Operators |
基本 F# 运算符。 此模块会自动在所有 F# 代码中打开。 |
一个实现模块,用于保存函数值调用的某些私有实现。 |
|
模块 Option |
针对选项的基本运算。 |
模块 Printf |
针对数字及其他数据类型的可扩展 printf 样式格式设置 |
模块 String |
用于字符串处理的函数编程运算符。 通过 String 和 Regex 类型中的字符串成员函数和其他功能,可使用更多的字符串操作。 |
类型定义
类型 |
说明 |
---|---|
类型 [,,,]<'T> |
四维数组,通常是从零开始的。 可以使用 System.Array 类型中的方法创建非以零开始数组。 |
类型 [,,]<'T> |
三维数组,通常是从零开始的。 可以使用 System.Array 类型中的方法创建非以零开始数组。 |
类型 [,]<'T> |
二维数组,通常是从零开始的。 |
类型 []<'T> |
一维零始数组,书写形式为 int[]、string[] 等。 |
将此特性添加到类定义后,可使类成为抽象类,这意味着无需实现其所有方法。 不能直接构造抽象类的实例。 |
|
将此特性添加到类型后,可以将“null”文本用于 F# 代码中的类型。 只能将此特性添加到 F# 定义的类或接口类型。 |
|
此特性有两个用途。 当应用于程序集时,必须为其提供一个字符串参数,并且此参数必须指示该程序集中的有效模块或命名空间。 引用了此程序集的被编译源代码文件将在自动打开给定路径的环境中处理。 |
|
将值设置为“false”的此特性添加到某一类型后,会禁用 F# 默认情况下使该类型可序列化的行为。 |
|
类型 byref<'T> |
表示 F# 代码中的托管指针。 |
含有 7 个选项的活动模式的帮助器类型。 |
|
含有 6 个选项的活动模式的帮助器类型。 |
|
含有 5 个选项的活动模式的帮助器类型。 |
|
含有 4 个选项的活动模式的帮助器类型。 |
|
含有 3 个选项的活动模式的帮助器类型。 |
|
含有 2 个选项的活动模式的帮助器类型。 |
|
将此特性添加到类型,就可使用 CLI 类来表示该类型。 |
|
如果将此特性添加到含有事件类型的属性,该属性将作为 CLI 元数据事件进行编译,编译方法是在语法上转换为“add_EventName”和“remove_EventName”方法对。 |
|
将此属性添加到记录类型会导致它被编译为具有默认构造函数属性 getter 和 setter CLI 的表示形式。 |
|
此特性用于指示,只有在泛型参数满足 F# 的“比较”约束时,泛型容器类型才会满足此约束。 例如,将此特性添加到类型定义 C<'T> 中的参数 'T 意味着,仅当类型 X 支持比较且 C<X> 为支持比较所需的所有其他前提条件都得到满足时,类型 C<X> 才会支持比较。 类型 C<'T> 仍可以用于其他类型参数,但诸如 C<(int -> int)> 这样的类型将不支持比较,因为类型 (int -> int) 为 F# 函数类型,它不支持比较。 |
|
此特性由 F# 编译器自动生成,以对函数和成员进行标记 - 这些函数和成员接受对其应用部分参数,并返回剩余函数。 |
|
此特性由 F# 编译器自动插入,以标记生成的 CLI 代码中的类型和方法,这些类型和方法带有指示与原始源构造的对应关系的标志。 Microsoft.FSharp.Reflection 命名空间中的函数使用此特性来将编译的构造反向映射到其原始形式。 不应从用户代码中使用。 |
|
此特性用于调整类型的运行时表示形式。 例如,可以使用此特性来指明可以对类型使用 null 表示形式。 这会影响某些构造的编译方式。 |
|
表示对 F# 类型或成员的编译表示形式所做的一次或多次调整。 |
|
F# 编译器自动将此特性插入到提供有“CompiledName”特性的标记方法中。 不应从用户代码中使用。 |
|
将此特性添加到 F# 模块中的值或函数定义后,会更改编译后的 CLI 代码中的值所用的名称。 |
|
指示应在 F# 源代码使用此构造时发出消息。 |
|
通过将此特性添加到某个类型,可表明它是使用比较的用户定义实现的类型。 |
|
通过将此特性添加到某个类型,可表明它是使用用户定义的相等比较实现的类型。 |
|
指示计算生成器类型上的成员为自定义查询运算符,并且指示该运算符的名称。 |
|
十进制数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Decimal。 |
|
将值设置为 false 的此特性添加到某个可区分联合后,会禁止为该类型的生成的 CLI 类生成标准帮助器成员测试程序、构造函数和访问器成员。 |
|
如果将此特性添加到字段声明,则表示不初始化该字段。 在类型检查过程中,可对以下约束进行断言:字段类型支持“null”。 如果“check”值为 false,则不对约束进行断言。 |
|
如果将此特性添加到函数,则指示该函数是应用程序的入口点。 如果没有为 EXE 指定它不存在,则将编译序列最后一个文件的模块绑定中的隐式初始化用作入口点。 |
|
此特性用于指示,只有在泛型参数满足 F# 的“相等”约束时,泛型容器类型才会满足此约束。 例如,将此特性添加到类型定义 C<'T> 中的参数 'T 意味着,仅当类型 X 支持相等比较且 C<X> 为支持相等比较所需的所有其他前提条件都得到满足时,类型 C<X> 才会支持相等比较。 类型 C<'T> 仍可以用于其他类型参数,但诸如 C<(int -> int)> 这样的类型将不支持相等比较,因为类型 (int -> int) 为 F# 函数类型,它不支持相等比较。 |
|
此特性用于对值进行标记,这些值是实验库功能的一部分。 |
|
浮点数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Double。 |
|
浮点数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Single。 |
|
用于表示 F# 函数值的 CLI 类型。 虽然此类型通常不会直接使用,但可以从其他 CLI 语言中使用它。 |
|
将此特性添加到生成的程序集,可指示数据架构的版本,该数据架构用于对附加到已编译的 F# 库的资源中的附加 F# 特定信息进行编码。 |
|
用于表示 F# 第一类类型函数值的 CLI 类型。 此类型供已编译的 F# 代码使用。 |
|
类型 FuncConvert |
可使用委托在 F# 第一类函数值和函数的 CLI 表示形式之间来回转换的 Helper 函数。 |
通过将此特性添加到带有泛型参数的非函数值,可表明对构造的使用可通过类型推理获得泛型代码。 |
|
类型 ilsigptr<'T> |
此类型供 F# 代码生成器内部之用。 |
32 位有符号整数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Int32。 |
|
16 位有符号整数的类型,使用度量单位进行批注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Int16。 |
|
64 位有符号整数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.Int64。 |
|
将此特性添加到某个类型后,即可使用 CLI 接口来表示该类型。 |
|
将此特性添加到某个值后,即可将该值作为 CLI 常量文本进行编译。 |
|
将此特性添加到某个类型后,即可将该类型解释为优化的类型(当前限制为度量参数化类型)。 这只能在非常有限的条件下使用。 |
|
将此特性添加到某个类型后,即可将该类型解释为度量单位。 这只能在非常有限的条件下使用。 |
|
表示 F# 代码中的非托管指针。 |
|
通过将此特性添加到某个类型,可指示此类型的比较为非正常操作。 这意味着,此类型不满足 F# 的“比较”约束。 在 F# 类型系统的边界内,这可帮助确保不会直接对此类型实例化 F# 泛型比较函数。 特性和检查并未限制使用与此类型的基类型或子类型进行的比较。 |
|
此特性用于标记在运行时不能动态调用的值。 通常将此特性添加到其实现包括不可验证的代码的内联函数。 在这种情况下,如果动态调用内联函数,则针对该函数而发出的方法体将引发异常,而不是在生成的程序集中包括不可验证的代码。 |
|
通过将此特性添加到某个类型,可指示相等性不是该类型的正常操作。 这表示该类型不满足 F#“相等性”约束。 在 F# 类型系统的边界内,这可帮助确保不会直接在此类型上实例化 F# 泛型相等性函数。 特性和检查并未限制使用与此类型的基类型或子类型进行的比较。 |
|
类型 Option<'T> |
可选值的类型。 从其他 CLI 语言中使用时,空选项为 null 值。 |
将自动为所有可选参数添加此特性。 |
|
格式设置表达式的类型。 |
|
格式设置表达式的类型。 |
|
指示,那么,当自定义运算符用于计算表达式,参数被计算表达式的变量空间自动进行参数化。 |
|
类型 Ref<'T> |
可变引用的类型。 使用函数 [:=] 和 [!] 获取和设置此类型的值。 |
通过将此特性添加到某个记录或联合类型,可禁止自动生成该类型的“System.Object.Equals(obj)”、“System.Object.GetHashCode()”和“System.IComparable”的重写。 该类型默认情况下将使用引用相等性。 |
|
将此特性添加到某个顶级值定义的 let 绑定后,即可在运行时使用实现该值的引用表达式。 |
|
此特性用于指示需要显式限定访问对模块、记录或联合类型的元素的引用。 |
|
将此特性添加到类型、值或成员后,会要求在使用构造时必须显式实例化任何泛型类型参数。 |
|
8 位有符号整数的类型,使用度量单位进行标注。 将在编译的代码中删除度量单位,并在使用反射分析此类型的值时删除度量单位。 该类型在表示形式上等效于 System.SByte。 |
|
将此特性添加到类定义后将使类成为密封类,这意味着就可能无法扩展或实现该类。 |
|
指示 CLI 库中已编译的实体与 F# 源代码中的元素之间的关系。 |
|
将此特性添加到类型上,即可使用 CLI 结构来表示它。 |
|
通过将此特性添加到记录、联合、异常或结构类型,可确认类型的“System.IComparable”实现的自动生成。 |
|
如果将此特性添加到记录、联合或结构类型,则可确认自动生成该类型的“System.Object.Equals(obj)”和“System.Object.GetHashCode()”的重写。 |
|
此特性用于标记在使用“%A”printf 格式设置模式和其他基于文本的二维显示布局时,默认情况下如何显示类型。 在此版本的 F# 中,唯一有效的值的格式为 PreText {PropertyName} PostText。 属性名称指示要计算和显示的属性,而非对象本身。 |
|
类型 Unit |
只有一个值“()”的类型“unit”。 此值为特殊值,并始终使用“null”表示形式。 |
此特性用于标记其用法将导致生成不可验证的代码的值。 这些值必然会标记为“inline”,目的是确保 F# 库的实际代码中不会出现不可验证的构造,而是将这些构造复制到调用方的源代码。 |
|
在将此特性添加到 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 的缩写词。 |
格式设置表达式的类型。 |
|
格式设置表达式的类型。 |
|
类型 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 异常 |