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]);
}
}
}
}