草庐IT

Finalizer

全部标签

c# - 如果构造函数抛出异常,是否调用析构函数?

寻找C#和C++的答案。(在C#中,将'destructor'替换为'finalizer') 最佳答案 它适用于C#(参见下面的代码),但不适用于C++。usingSystem;classTest{Test(){thrownewException();}~Test(){Console.WriteLine("Finalized");}staticvoidMain(){try{newTest();}catch{}GC.Collect();GC.WaitForPendingFinalizers();}}这会打印“Finalized”