我正在将一个将非托管库包装到 F# 的 C# 类翻译。我遇到了重写以下析构函数的看似简单的问题。
class Wrapper {
// P/Invoke ellided
private SomeType x;
public Wrapper() {
x = new SomeType();
Begin();
}
public ~Wrapper() {
End();
}
我此时的简化 F# 代码如下:
type Wrapper() =
[<Literal>]
static let wrappedDll = "Library.dll"
[<DllImport(wrappedDll , EntryPoint = "Begin")>]
static extern void Begin()
[<DllImport(wrappedDll , EntryPoint = "End")>]
static extern void End()
let x = new SomeType()
do
Begin()
如何修改此 F# 代码以具有相同的行为?我对 F# 析构函数的搜索在我拥有的书籍或网络上都没有结果。
谢谢你。