析构函数在对象撤消的时候自动调用
写好的类要编译 生成.dll文件
然后在.net 中填加引用 将.dll填加上去
就可以用using 类

解决方案 »

  1.   

    第一个问题能否回答详细点?第二个问题,我说的是在代码中使用using (***)这种调用,不是在最上面导入类~~
      

  2.   

    可以使用.
    CLASS会在结速时调用.
    REFER TO MSDN
      

  3.   

    using 语句定义一个范围,在此范围的末尾将处理对象。using (expression | type identifier = initializer) statement
    其中: expression 
    希望在退出 using 语句时调用 Dispose 的表达式。 
    type 
    identifier 的类型。 
    identifier 
    type 类型的名称或标识符。定义一个以上 type 类型的 identifier 是可以的。在每一个 identifier = initializer 的前边都有一个逗号。 
    initializer 
    创建对象的表达式。 
    statement 
    嵌入的语句或要执行的语句。 
    备注
    在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。实例化的对象必须实现 System.IDisposable 接口。
      

  4.   

    System.IDisposable 接口是怎么回事情?如何实现?
      

  5.   

    感谢 vitamin_ok(New水水),使用using调用的问题已解决,原来要把类继承自IDisposable,那如何写析构函数呢?里面通常要具体做些什么呢?各位高手帮帮忙呀
      

  6.   

    namespace Mynamespace
    {
    class eg
    {
       public eg(){//构造函数,在对象实例化时调用};
       //public eg(参数列表){//有参构造函数,在对象实例化时调用};   public ~eg(){//析构函数,在对象消失时调用};
    }
    }using Mynamespace
    static mail()
    {
      eg eg1;//自动构造函数
    }
    之后自动调用析构函数
      

  7.   

    flygoldfish感谢你的回答,不过这些我是明白了,但我不明白析构函数里应该具体做些什么~~有例子讲解下吗?
      

  8.   

    >>但我不明白析构函数里应该具体做些什么
    析构函数用于销毁类的实例。析构函数是通过下面的形式声明的:[attributes] ~ identifier( ) { destructor-body }
    此处: attributes(可选) 
    附加的声明性信息。有关属性和属性类的更多信息,请参阅 C# 属性。 
    identifier 
    identifier 与类名相同。 
    destructor-body 
    包含销毁类实例的语句的块。 
    备注
    注意 不能对结构使用析构函数。只能对类使用析构函数。
    一个类只能有一个析构函数。无法继承或重载析构函数。无法调用析构函数。它们是被自动调用的。 析构函数既没有修饰符,也没有参数。例如,下面是类 MyClass 的析构函数的声明:~ MyClass() 
    {
       // Cleanup statements.
    }
    该析构函数隐式地对对象的基类调用 Object.Finalize 方法。这样,前面的析构函数代码被隐式地转换为:protected override void Finalize()
    {
       try
       {
          // Cleanup statements.
       }
       finally
       {
          base.Finalize();
       }
    }
    这意味着对继承链中的所有实例递归地(从派生相近程度最大的到派生相近程度最小的)调用 Finalize 方法。程序员无法控制何时调用析构函数,因为这由垃圾回收器决定的。垃圾回收器检查是否存在应用程序不再使用的对象。它认为这些对象符合销毁条件并回收这些对象占用的内存。程序退出时也会调用析构函数。注意 可以通过调用 GC.Collect 方法强制进行垃圾回收,但大多数情况下应避免这样做,因为这样会导致出现性能问题。有关更多信息,请参阅强制垃圾回收。
    示例
    下面的示例创建三个类,这三个类构成了一个继承链。类 First 是基类,Second 是从 First 派生的,而 Third 是从 Second 派生的。这三个类都有析构函数。在 Main() 中,创建了派生相近程度最大的类的实例。程序运行时,注意这三个类的析构函数会自动被调用,并且是按照从派生相近程度最大的到派生相近程度最小的次序调用。// Destructors1.cs
    using System;class First
    {
       ~First()
       {
          Console.WriteLine("First's destructor is called");
       }
    }class Second: First
    {
       ~Second()
       {
          Console.WriteLine("Second's destructor is called");
       }
    }class Third: Second
    {
       ~Third()
       {
          Console.WriteLine("Third's destructor is called");
       }
    }public class MainClass 
    {
       public static void Main() 
       {
          Third myObject = new Third();
       }
    }
    输出
    Third's destructor is called
    Second's destructor is called
    First's destructor is called
    使用析构函数释放资源
    一般来说,您不必像使用 C++ 时那样关注内存管理。这是因为 .NET 框架垃圾回收器会隐式地管理对象的内存分配和释放。但是,当应用程序封装窗口、文件和网络连接这类非托管资源时,应当使用析构函数释放这些资源。当对象符合销毁条件时,垃圾回收器会运行对象的 Finalize 方法。资源的显式释放
    如果您的应用程序在使用昂贵的外部资源,则还建议您提供一种在垃圾回收器释放对象前显式地释放资源的方式。可通过实现 Dispose 方法(来自 IDisposable 接口)来完成这一点,该方法为对象执行必要的清理。这样可大大提高应用程序的性能。即使有这种对资源的显式控制,析构函数也是一种保护措施,可用来在对 Dispose 方法的调用失败时清理资源。有关清理资源的更多详细信息,请参阅下列主题: 清理非托管资源 
    实现 Dispose 方法 
    using 语句