c#勉強---using

1571 ワード

c#のusingは、プログラムセットを参照する以外に、次のようにします.
 
 
using System;
using System.Collections.Generic;
 
 
もう一つ重要な使い方があります.
 
 
私たちはシステムを知っています.objectにはFinalize()が虚関数であり,GCでごみ回収を行う際に用いられるが,一般的には自己表示のクリーンアップロジックは用いられないが,一般的にはoverride Finalize()が考えられる.
 
{
     protected override Finalize()
      {
             //do something
      }
}

しかし、c#がそんなことを許さないのはおかしい.構造関数を追加するしかありません.
 
 class a
    {
        
        ~a()
        {
            Console.WriteLine("I am dead!");
        }
    
        
    }

さらに、クラスタイプが処理可能である場合、つまりIDisposableインタフェースがサポートされている場合、Dispose()を呼び出すことができます.
 
class a : IDisposable
{
     public void Dispose()
     {
          //       。。。。
         // and something else
      }
}

もちろん、現在のタイプがIDisposableをサポートしているかどうかを判断したほうがいいです.
 
。。。。
if (a is IDisposable)
     a.Dispose();

IDisposableが実装された処理では、一般的に構造化された例外処理を使用して、Dispose()呼び出しを保証します.
 
try
{
   //  a  
}
finally
{
   a.Dispose();
}

明らかにtry/finallyに各処理可能なタイプを含めるのは受け入れられず、usingの別の用途があります.
 
using(a  mya=new a())
{
    //  mya  
}

CILコードではtry/finallyですが、私たちのコードの作成と読書はもっと受け入れられます.