/// <summary>
 /// Releases internal resources held by the GPIO pin.
 /// </summary>
 /// <param name="disposing">True if called from Dispose, false if called from the finalizer.</param>
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         DisposeNative();
         s_eventListener.RemovePin(m_pinNumber);
     }
 }
        private void Dispose(bool disposing)
        {
            if (!_disposedValue)
            {
                if (disposing)
                {
                    // remove the pin from the event listner
                    s_eventListener.RemovePin(_pinNumber);
                }

                DisposeNative();

                _disposedValue = true;
            }
        }