【发布时间】:2014-07-05 15:01:24
【问题描述】:
我注意到如果我用 StructLayout.Sequential 定义一个结构,像这样:
open System.Runtime.InteropServices
[<StructLayout(LayoutKind.Sequential, Pack=1)>]
type SomeType =
val mutable Field1: uint32
val mutable Field2: uint32
这在实际程序中编译并运行良好,但 FSI 给出错误error FS0193: internal error: Could not load type 'SomeType' from assembly 'FSI-ASSEMBLY, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' because field 'Field1' was not given an explicit offset.
这是 FSI 的错误或限制吗?有解决办法吗?
【问题讨论】:
-
我正在使用 Microsoft (R) F# Interactive 版本 12.0.30110.0 重现此行为
-
不确定这是否属于 F# 语言设计?
-
只是为了完整性:使用 Pack=0 它可以工作,任何其他值都会导致错误被抛出。
标签: f# f#-interactive