gpt4 book ai didi

Android- (button.Click += event;) 和 (button.SetOnClickListener(this)) 之间有什么区别?

转载 作者:行者123 更新时间:2023-11-30 05:11:22 24 4
gpt4 key购买 nike

他们都做同样的工作——定义点击按钮时发生的事情。那么,两者之间的真正区别是什么?

最佳答案

Xamarin 在 Android(和 iOS)框架内的许多地方创建 C# 包装器,将平台的 native 方法规范化为标准的 .Net/C# 约定。

SetOnClickListener 是 native Java 方法,C# Click 是 native 方法的 EventHandler 包装器。

Click 事件处理程序背后的代码:

public event EventHandler Click {
add {
EventHelper.AddEventHandler (ref weak_implementor_SetOnClickListener, (Func<IOnClickListenerImplementor>)__CreateIOnClickListenerImplementor, (Action<IOnClickListener>)SetOnClickListener, (Action<IOnClickListenerImplementor>)delegate (IOnClickListenerImplementor __h) {
__h.Handler = (EventHandler)Delegate.Combine (__h.Handler, value);
});
}
remove {
EventHelper.RemoveEventHandler (ref weak_implementor_SetOnClickListener, (Func<IOnClickListenerImplementor, bool>)IOnClickListenerImplementor.__IsEmpty, (Action<IOnClickListener>)delegate {
SetOnClickListener (null);
}, (Action<IOnClickListenerImplementor>)delegate (IOnClickListenerImplementor __h) {
__h.Handler = (EventHandler)Delegate.Remove (__h.Handler, value);
});
}
}

正如您在代码中看到的那样,SetOnClickListener 是更有效的方法,因为它避免了包装器。

关于Android- (button.Click += event;) 和 (button.SetOnClickListener(this)) 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53682730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com