基本は implements IDisposablse を定義した時に挿入される Visual Studio のテンプレートのコメント通りにすればよい。
基本、下記のとおり
- 常に絶対実行しないといけないもの
- アンマネージドなリソースの解放
- これがある時は、コメントアウトされている Finalize を復活しなくてはいけない
- アンマネージドなリソースの解放
- Dispose(true) … End Using や引数無しで明示的に呼ばれる時
- マネージドなフィールドも解放する (null , Nothing を代入して解放できるようにする)
- Dispose(false) … garbage colection で呼び出される時
- マネージドなフィールドは別途解放中なので、そのままでよい