Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用Dispose或设置为“Dispose”有什么区别;“违约”;在Xamarin,安卓系统?_Xamarin_Xamarin.android_Dispose - Fatal编程技术网

调用Dispose或设置为“Dispose”有什么区别;“违约”;在Xamarin,安卓系统?

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

我继承了在OnDestroy()中将视图元素设置为默认值的代码,而不是在所有片段中调用Dispose()。这些方法之间的区别/影响是什么

e、 g


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;
    }