アンマネージドリソースは、解放するタイミングを自身で決める必要がある。
解放する際には消滅タイミングでの処理Dispose()を呼び出す。
目次
    
  Dispose()が必要なクラスの見分け方
感覚で書いたり書かなかったりすると忘れた頃にやらかす為、自身で解放が必要か否かを見分ける方法として
IDisposableインターフェイスが実装されているかを調べる
アンマネージドリソースを実装する使用する型は、割り当てられたリソースが解放されるようにIDisposableインターフェイスを実装している。
UnityリファレンスのPublic関数内にDisposeがあるかを見る
察しはつくものの要る要らないの判断が出来る。
Dispose()が必要な例 
IDisposable.Disposeの実装を呼び出す2つの方法
try/finallyブロックを実装する
try{
 
}
catch(){
}
finally{
 //対象がnullでなければDispose()を呼び出す
}usingステートメントを使用する
確実に廃棄するためにusingステートメントを用いる
usingステートメントは、1つ以上のリソースを取得し、指定されたステートメントを実行し、オブジェクトを自動的に破棄する。
using(){}
using(/*リソースを取得*/)
{
 //IDisposableインターフェイスを実装した処理
} C#のusingステートメントでは、単一のステートメントで複数のリソースを取得できる 
using(/*リソースを取得*/)
using(/*リソースを取得*/)
{
 //IDisposableインターフェイスを実装した処理
} 補:一般的なアンマネージドリソースの種類 
ファイル
ウィンドウ
ネットワーク接続
データベース接続などのオペレーティング システム