调用Dispose或设置为“Dispose”有什么区别;“违约”;在Xamarin,安卓系统?
我继承了在OnDestroy()中将视图元素设置为默认值的代码,而不是在所有片段中调用Dispose()。这些方法之间的区别/影响是什么 e、 g调用Dispose或设置为“Dispose”有什么区别;“违约”;在Xamarin,安卓系统?,xamarin,xamarin.android,dispose,Xamarin,Xamarin.android,Dispose,我继承了在OnDestroy()中将视图元素设置为默认值的代码,而不是在所有片段中调用Dispose()。这些方法之间的区别/影响是什么 e、 g default只会将值设置为对象默认值,该值应为null 假设它是null,这与Dispose有相似之处,但不同。由于对象不应该再有任何引用(有一些警告,比如如果清除了所有订阅),因此它可以用于垃圾收集,并且最终应该被收集。但是,使用Dispose标记对象应该被收集,因此应用程序从那一刻开始就知道了这一点,而不是从它检查免费引用的那一刻开始。默认值只
default
只会将值设置为对象默认值,该值应为null
假设它是
null
,这与Dispose
有相似之处,但不同。由于对象不应该再有任何引用(有一些警告,比如如果清除了所有订阅),因此它可以用于垃圾收集,并且最终应该被收集。但是,使用Dispose
标记对象应该被收集,因此应用程序从那一刻开始就知道了这一点,而不是从它检查免费引用的那一刻开始。默认值只会将值设置为对象默认值,该值应该是null
假设它是null
,这与Dispose
有相似之处,但不同。由于对象不应该再有任何引用(有一些警告,比如如果清除了所有订阅),因此它可以用于垃圾收集,并且最终应该被收集。但是,使用Dispose
标记应该收集对象,这样应用程序就可以从那一刻开始意识到这一点,而不是从它检查免费引用的那一刻开始。你会说Dispose比设置为null/default更可取吗?@蓝色是,你会说Dispose比设置为null/default更可取吗?@蓝色是
public override void OnDestroy()
{
ClearViewElements();
base.OnDestroy();
}
private void ClearViewElements()
{
_aRecyclerView.RemoveAllViewsInLayout();
_aRecyclerView.SetAdapter(null);
if (_aListAdapter != null)
{
_aListAdapter.DeleteClick = default;
_aListAdapter = default;
}
_aRecyclerView = default;
_aButton = default;
_anEditText = default;
_aLayout = default;
}