using System; namespace PkmnLibSharp { public abstract class PointerWrapper : IDisposable { internal readonly IntPtr Ptr; private bool _isDeleted = false; protected PointerWrapper(IntPtr ptr) { Ptr = ptr; } internal abstract void DeletePtr(); public virtual void Dispose() { if (_isDeleted) return; DeletePtr(); _isDeleted = true; } } }