我正在将包装非托管库的 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# 析构函数的搜索在我拥有的书籍或网络上都没有结果。
谢谢你。
最佳答案
您是否尝试过寻找 F# 终结器?
override x.Finalize() = ...
关于F# 等价于析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5676791/