此post包含以下源代码:
class Foo
{
private int x;
private int y;
public Foo(int x, int y)
{
this.x = x;
this.y = y;
SideEffects.Alpha(); // Notice: does not use "this"
}
~Foo()
{
SideEffects.Charlie();
}
}
static class SideEffects
{
public static void Alpha() { ... }
public static void Bravo() { ... }
public static void Charlie() { ... }
public static void M()
{
Foo foo = new Foo(1, 2);
Bravo();
}
}
~
做什么?
答案 0 :(得分:3)
它用于C#中的Destructor,它隐式调用Finalize方法。
析构函数用于销毁类的实例。
析构函数隐式调用了基类的Finalize 对象
程序员无法控制何时调用析构函数 因为这是由垃圾收集器决定的。垃圾 收集器检查不再被使用的对象 应用。如果它认为某个对象有资格进行销毁,那么 调用析构函数(如果有的话)并回收用于存储的内存 物体。程序退出时也会调用析构函数。
答案 1 :(得分:1)
它是C#Destructor的符号。有一个详细的答案here。
答案 2 :(得分:1)
〜符号也用于声明析构函数~ Operator (C# Reference)