CS.IDISP.USING

IDisposable を実装しているオブジェクトの構築には、Using ステートメントを使用する必要があります。

IDisposable インターフェイスを実装しているオブジェクトを作成するには、Using ステートメントを使用します。

脆弱性とリスク

IDisposable インターフェイスを実装しているオブジェクトは、Dispose () メソッドを呼び出してリソースを解放する必要があります。Dispose () メソッドの呼び出しを忘れると、リソースリークの問題が発生する可能性があります。

軽減と防止

Using ステートメントを使用することで、Dispose() メソッドが自動的に呼び出されるため、Dispose() メソッド呼び出しの見逃しを回避できます。

コピー
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  
  namespace kmcustom
  {
  
     class MyCls
     {
         public string _str = "abc";
 
         public void setStr(string str)
         {
             _str = str;
         }
         public string getStr()
         {
             return _str;
         }
 
 
     }
 
     class C16
     {
         private string str = "abc";
 
         private String cstr = "abc";
 
         private int number = 1;
 
         private int[] int_array = new int[5];
 
         private MyCls myCls = new MyCls();
 
         public string getStr()
         {
             return str;//OK - string or String is immutable
         }
 
         public string getCStr()
         {
             return str;//OK - string or String is immutable
         }
 
         public int getNumber()
         {
             return number;//OK
         }
 
         public MyCls getMyCls()
         {
             return myCls;//NG
         }
 
         public int[] getIntArray()
         {
             for(int i = 0; i < int_array.Length; i++) 
             {
                 int_array[i] = 0;
             }
             return int_array;//NG
         }
 
         public void printIntArray()
         {
             for (int i = 0; i < int_array.Length; i++) {
                 Console.WriteLine("index:"+ i + " value:"+ int_array[i]);
             }
 
         }
     }
 }