private Comparator(string name, Func<NativeArray, NativeArray, int> cmp) { var inner = new Inner(); try { Handle = inner.Init(name, cmp); } finally { if (Handle == default(IntPtr)) inner.Dispose(); } }