首页 新闻 搜索 专区 学院

为什么不能调用析构函数

0
悬赏园豆:20 [已解决问题] 解决于 2021-07-30 07:04

namespace 析构函数
{
class Program
{
static void Main(string[] args)
{
Test yu = new Test();
}
}
class Test
{
public int a;
public Test()
{
a = 20;
Console.WriteLine("我是渣渣辉");
}
~Test()
{
Console.WriteLine("成功");
}
}
}

扫地大爷的主页 扫地大爷 | 初学一级 | 园豆:168
提问于:2021-07-25 19:40
< >
分享
最佳答案
0

主动GC一下就可以了, GC回收的触发是有条件的. 例如物理内存不够,系统说要压缩一下, C# 0堆满了等等条件. GC相关内容请参考文档:https://docs.microsoft.com/zh-cn/dotnet/standard/garbage-collection/fundamentals, 建议通读.

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            test();
            GC.Collect();
            Console.ReadLine();
        }
        static void test()
        {
            var t = new Test();
        }
    }
    class Test
    {
        public int a;
        public Test()
        {
            a = 20;
            Console.WriteLine("我是渣渣辉");
        }
        ~Test()
        {
            Console.WriteLine("成功");
        }

    }
收获园豆:20
czd890 | 专家六级 |园豆:12348 | 2021-07-27 11:51
其他回答(2)
0

C#的析构函数是给GC调用的,只有GC认为一个对象无效了,才会调用

拓拓 | 园豆:1043 (小虾三级) | 2021-07-26 09:27
0

有垃圾回收和无垃圾回收的语言,对对象的销毁是不一样的。
C#中dispose using 可以对析构有限的处理

2012 | 园豆:21040 (高人七级) | 2021-07-27 09:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册