コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】IDisposable の破棄漏れを見つけるクラス

ソースコード

  • Dispose が呼び出されずにインスタンスが破棄されると
    デストラクタのタイミングでエラーログを出力する

使用例

using UnityEngine;

// IDisposable を直接実装するのではなく、  
// CheckDisposable を継承するようにする  
public sealed class TestClass : CheckDisposable
{
    protected override void DoDispose()
    {
    }
}

public class Example : MonoBehaviour
{
    private void Start()
    {
        // OK
        using ( var test1 = new TestClass() )
        {
        }

        // OK
        var test2 = new TestClass();
        test2.Dispose();
        
        // NG(エラーログが出力される)
        var test3 = new TestClass();
    }
}