我正在将一个包装非托管库的C#类翻译为F#。我遇到了一个看似简单的问题,需要重新编写紧随其后的析构函数。
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# 析构函数,但都没有结果。
谢谢。
IDisposable
接口的 C# 类?多么奇怪。 - ildjarn