Enums F#库中的枚举类型在链接程序中不可见
在我构建下面的库并将一个程序与其链接后,链接到库的程序可以看到函数Enums F#库中的枚举类型在链接程序中不可见,enums,f#,static-libraries,Enums,F#,Static Libraries,在我构建下面的库并将一个程序与其链接后,链接到库的程序可以看到函数libInit、driveList和freeSpace,这就是我所期望的 我不知道如何引用库中包含的枚举。枚举是否可见,或者是否可以使它们对链接程序可见,如果是,它们是如何引用的 namespace Toa.volLib open System open System.Threading open System.Collections.Generic open System.Text open System.IO open Mic
libInit
、driveList
和freeSpace
,这就是我所期望的
我不知道如何引用库中包含的枚举。枚举是否可见,或者是否可以使它们对链接程序可见,如果是,它们是如何引用的
namespace Toa.volLib
open System
open System.Threading
open System.Collections.Generic
open System.Text
open System.IO
open Microsoft.Win32
[<AutoOpen>]
module volLib =
type volTypes = GB = 1000000000L | Min_c = 5000000000L | Min_d = 10000000000L
let libInit = ref false
let driveList () =
DriveInfo.GetDrives()
let freeSpace drive =
let di = DriveInfo(drive)
di.AvailableFreeSpace
名称空间Toa.volLib
开放系统
开放系统。线程
open System.Collections.Generic
开放系统.Text
开放系统
打开Microsoft.Win32
[]
模块库=
类型电压类型=GB=1000000000L |最小值c=5000000000L |最小值d=1000000000L
设libInit=ref false
让driveList()=
DriveInfo.GetDrives()
让自由空间驾驶=
让di=驱动器信息(驱动器)
di.AvailableFreeSpace
如果libInit
和模块中的其他函数可见,则表示您已正确链接了库
如果尝试访问枚举,则需要在其前面加上枚举名称,如:
let accessEnum = volTypes.GB
let accessUnion = GB2
这与使用F#区分的联合类型不同。如果你定义一个像
type volUnion =
| GB2
| Min_c2
| Min_d2
然后,您可以仅通过名称访问每个案例,如:
let accessEnum = volTypes.GB
let accessUnion = GB2
将枚举移到模块外部。@Gustavo但如何从链接程序引用它们?像往常一样,单击“添加引用”,浏览,选择dll。。。否则,这有什么特别之处?您是否尝试过我关于枚举的建议?您是否可以编辑问题以包含尝试访问枚举的代码?