首页 > Windows开发 > 详细

C#中构造函数和析构函数区别

时间:2017-01-11 14:15:05      阅读:275      评论:0      收藏:0      [点我收藏+]

把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。这样就不用担心忘记对象的初始化和清除工作。 

  析构函数是由垃圾回收器控制的.

 

析构函数是由垃圾回收器控制的.把对象的初始化工作放在构造函数中,把清除工作放在析构函数中。当对象被创建时,构造函数被自动执行。当对象消亡时,析构函数被自动执行。这样就不用担心忘记对象的初始化和清除工作。一般不要定义析构函数,如果要释放非托管资源的话,就让该类继承IDisposable接口,实现Dispose模式。

 

using中的申明的对象确实可以释放,可以参考示例。

 

技术分享using System;
技术分享
技术分享namespace ConsoleApplication7
技术分享{
技术分享    /// <summary>
技术分享    /// test 的摘要说明。
技术分享    /// </summary>
技术分享    public class Test:IDisposable
技术分享    {
技术分享        public Test(string name)
技术分享        {
技术分享            this.name = name;
技术分享        }
技术分享
技术分享        private string name;
技术分享
技术分享        public string Name
技术分享        {
技术分享            get{return name;}
技术分享            set{name = value;}
技术分享        }
技术分享
技术分享        public static void Main()
技术分享        {
技术分享            Console.WriteLine("Programme Start!");
技术分享
技术分享            Test test1 = new Test("1");
技术分享            using(test1)
技术分享            {
技术分享            }
技术分享            using(Test test2 = new Test("2"), test3 = new Test("3")) 
技术分享            {
技术分享                Test test4 = new Test("4");
技术分享            }
技术分享
技术分享            Console.WriteLine("Programme Over!");
技术分享            Console.ReadLine();
技术分享        }
技术分享
技术分享        #region IDisposable 成员
技术分享
技术分享        public void Dispose()
技术分享        {
技术分享            Console.WriteLine("{0}正在释放资源",name);
技术分享        }
技术分享
技术分享        #endregion
技术分享    }
技术分享
技术分享}
技术分享

证明这个方法是可行的

C#中构造函数和析构函数区别

原文:http://www.cnblogs.com/mjq5150/p/6273330.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!