C#中构造函数和析构函数的用法区别

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

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

 

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

 

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

 

using  System;

namespace  ConsoleApplication7
ExpandedBlockStart.gifContractedBlock.gif
{
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
    
/// test 的摘要说明。
    
/// </summary>

    public class Test:IDisposable
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        
public Test(string name)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
this.name = name;
        }


        
private string name;

        
public string Name
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
ExpandedSubBlockStart.gifContractedSubBlock.gif            
get{return name;}
ExpandedSubBlockStart.gifContractedSubBlock.gif            
set{name = value;}
        }


        
public static void Main()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            Console.WriteLine(
"Programme Start!");

            Test test1 
= new Test("1");
            
using(test1)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
            }

            
using(Test test2 = new Test("2"), test3 = new Test("3")) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Test test4 
= new Test("4");
            }


            Console.WriteLine(
"Programme Over!");
            Console.ReadLine();
        }


ContractedSubBlock.gifExpandedSubBlockStart.gif        
IDisposable 成员#region IDisposable 成员

        
public void Dispose()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            Console.WriteLine(
"{0}正在释放资源",name);
        }


        
#endregion

    }


}

证明这个方法是可行的

 

转载于:https://www.cnblogs.com/shenshi/archive/2009/05/20/1467274.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值