gpt4 book ai didi

c# - 当一个值被设置为 null 时,幕后会发生什么?

转载 作者:行者123 更新时间:2023-11-30 14:58:35 25 4
gpt4 key购买 nike

假设我有一个填充的对象数组。

 Resource[] list = new Resource[100000];

偶尔,我想将此列表中的对象更改为默认值。

 Resource defaultResource = new Resource();

稍后,我想检查该项目是否为默认项目。因此,我想知道将列表对象设置为默认值与将值设置为 null 的性能差异可能是什么。

 list[i] = defaultResource; /*versus*/ list[i] = null;

真的,我想知道当一个值设置为 null 与将其设置为等于其他值时幕后发生了什么。

对不起,如果这是一个愚蠢的问题!

最佳答案

将变量设置为现有对象与将其设置为 null 之间没有太大区别。在这两种情况下,无论存储在该变量中的新值是 null 还是其他对象,之前被该变量引用的对象都将更接近于符合垃圾回收条件。其余的赋值也以相同的方式进行:CLR 不维护引用计数,因此在进行赋值时不需要特别发生任何事情。

将默认对象存储在 null 的位置以避免在运行时进行大量的 null 检查可能是有益的,但是:这样做可以简化代码,并减少需要在运行时进行分支。

关于c# - 当一个值被设置为 null 时,幕后会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18627010/

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