ILSpy中显示奇数类成员语法

时间:2012-04-17 08:43:02

标签: c# syntax destructor ilspy

我正在使用ILSpy在XNA框架内探索几个dll并遇到了这个问题:

class KerningHelper
{
    private void !KerningHelper()
    {
        ((IDisposable)this).Dispose();
    }
}

上面的感叹号是什么?这是ILSpy或其他什么问题吗?

注意,该类有一个单独的析构函数:private unsafe void ~KerningHelper()

1 个答案:

答案 0 :(得分:6)

正如评论所述,感叹号是终结器方法的C ++ / CLI标记。与显式处理对象时调用的传统C ++析构函数(〜)不同,终结器由垃圾收集器线程调用。您可以查看官方详细信息here

我希望ILSpy能够将!KerningHelper()翻译成~KerningHelper(),因为C ++ / CLI终结器等同于C#的析构函数 - 这是一种非确定性方法,当GC到达它时会发生,与C ++不同/ CLI的显式~destructor,在您调用delete或显式Dispose调用时调用。