我有:
type Package =
abstract member Date : int
abstract member Save : unit -> unit
[<type:StructLayout(LayoutKind.Sequential, Pack=1, CharSet=CharSet.Ansi)>]
type Instant(date : int, value : int) =
let mutable _date = date
let mutable _value = value
member X.Value : int = _value
interface Package with
member X.Date : int = _date
member X.Save() = ...
但出现错误:只有没有隐式构造函数的结构和类才能被赋予“StructLayout”属性
所以我意识到它必须是相似的:
type Instant =
struct
val Date : byte array
...
但是这样我就失去了我的界面。例如,在 C# 中,type:StructLayout
可以为这种类型的类添加(我认为)。我必须如何重构我的代码以避免此错误?