C#构造函数与折构函数

       构造函数和折构函数是C#语言中两种较为特殊的成员函数,主要用来进行对象的初始化活动和对象资源的回收活动。

      构造函数又叫构造方法,主要用来在创建对象时初始化对象,构造函数的命名必须和类名完全相同,而一般方法则不能和类名相同,并且无返回值。构造函数在创建给定类型的对象时执行。具体应用如下

       

class Program
    {
        public int a = 5;
        public int b = 8;
        public int c = 0;

        public Program()
        {
            c = a + b;

        }
                 
        static void Main(string[] args)
        {
            Program program = new Program();
            Console.WriteLine("运算结果为:" + program.c);

        }
    }
}
   程序运行结果为:

             

    构造函数的特点是:命名必须和类名完全相同;功能主要用于在类的对象创建时定义初始化的状态;不能被直接调     用,必须通过new运算符来调用。


    折构函数主要用来回收对象资源,当对象对象所在的函数已调用完毕,脱离其作用域时,系统自动执行析构函数。使用时在名字前夹反位符~。

     

class Program
    {
        ~Program()
        {
         Console.WriteLine("hello world");

        }
        static void Main(string[] args)
        {
            Program program = new Program();
        }
    }
}
    运行结果为:

              

     折构函数在一个类中只有一个,只能自动调用无法被调用。

      

### C#构造函数函数的定义 在 C# 编程语言中,构造函数是在创建对象实例时自动调用的方法,用于初始化新创建的对象。构造函数可以带有参数也可以不带参数,并且可以在其中执行必要的初始化操作[^1]。 ```csharp class Person { public string Name; // 默认构造函数 public Person() { this.Name = "Unknown"; } // 带参构造函数 public Person(string name) { this.Name = name; } } ``` 相反,析函数(也称为终结器)是一个特殊的方法,在垃圾回收机制准备释放对象所占用资源之前被调用。析函数不需要任何修饰符或参数列表,并且每个类最多只能有一个析函数[^3]。 ```csharp ~Person() { // 清理非托管资源 } ``` ### 构造函数函数的区别 - **作用时间不同**:构造函数在对象创建时立即执行;而析函数则由 .NET 的垃圾收集器决定何时调用。 - **目的差异**:构造函数主要负责设置初始状态并分配必要资源;析函数则是用来清理不再使用的资源,特别是那些未受 CLR 管理的外部资源。 - **数量限制**:一个类可以拥有多个重载形式的构造函数来适应不同的需求场景;然而对于析函数来说,则严格限定为单一存在。 - **访问权限**:通常情况下,构造函数会被公开以便于其他部分能够正常实例化该类型的对象;而对于析函数而言,默认就是私有的,不允许显式指定其可见性级别[^2]。 ### 应用场景举例 当开发人员想要确保某些特定的操作总会在某个时刻发生——无论是刚开始使用还是最终销毁阶段——就应当考虑利用好这两个重要的特性: #### 使用构造函数的应用场景 - 初始化成员变量至合理默认值; - 加载配置文件或其他依赖项; - 记录日志信息表明当前实例已被成功建立。 #### 运用析函数的情境 - 关闭数据库连接、网络套接字等长期持有型句柄; - 解锁互斥体或者信号量以防止死锁现象的发生; - 注销事件监听者避免内存泄漏问题出现。 通过上述描述可以看出,正确理解和运用这两种方法有助于提高程序健壮性和可维护性的同时还能有效减少潜在错误发生的几率。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值