前程韶光 2021-05-04 16:13 采纳率: 60%
浏览 338

为什么此处的析构函数没有执行?

using System;
namespace Class
{
    class Program
    {
        static void Main()
        {
            //line temp1 = new line();
            //LINE temp2 = new LINE(10.0);
            line1 temp3 = new line1(5.66);
            Console.WriteLine("{0}", temp3.length);
        }
    }

    //默认的构造函数没有任何参数。但是如果你需要一个带有参数的构造函数可以有参数,
   //这种构造函数叫做参数化构造函数。这种技术可以帮助你在创建对象的同时给对象赋初始值
   class LINE
    {
       public double length;
        public LINE(double length)
        {
            this.length = length;
        }
    }
//    C# 中的析构函数
//类的 析构函数 是类的一个特殊的成员函数,当类的对象超出范围时执行。
//析构函数的名称是在类的名称前加上一个波浪形(~)作为前缀,它不返回值,也不带任何参数。
//析构函数用于在结束程序(比如关闭文件、释放内存等)之前释放资源。析构函数不能继承或重载。
    class line1
    {
       public double length;
        
        public line1(double length)
        {
            this.length = length;
            Console.WriteLine("对象已经被创建");
        }
        ~line1() //析构函数
        {
            Console.WriteLine("对象已经被删除");
        }
    }
}
  • 写回答

6条回答 默认 最新

  • CSDN专家-Time 2021-05-04 16:14
    关注

    因为对象没有被销毁,所以析构函数不会被执行。

    https://www.cnblogs.com/qixuejia/p/3957966.html

    参考C#的GC

    评论

报告相同问题?

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏