public virtual NSObject Copy(NSZone zone)
        {
            var zone__handle__ = zone.GetNonNullHandle(nameof(zone));

            if (IsDirectBinding)
            {
                return(Runtime.GetNSObject(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr(this.Handle, Selector.GetHandle("copyWithZone:"), zone.Handle)));
            }
            else
            {
                return(Runtime.GetNSObject(global::ApiDefinition.Messaging.IntPtr_objc_msgSendSuper_IntPtr(this.SuperHandle, Selector.GetHandle("copyWithZone:"), zone.Handle)));
            }
        }
        public NSObject Copy(NSZone zone)
        {
            var zone__handle__ = zone.GetNonNullHandle(nameof(zone));

            return(Runtime.GetNSObject(global::ApiDefinition.Messaging.IntPtr_objc_msgSend_IntPtr(this.Handle, Selector.GetHandle("copyWithZone:"), zone.Handle)));
        }