如果我将变量设置为null,那么原始数据会发生什么?C#



我只是想知道,如果我将其分配的变量设置为null?

,原始数据会发生什么?

例如:

class Fruits{
    public int Count;
    public List<string> Names;
}
class Main{
    private Fruits fruits = new fruits();
    void SetFruitsToNull(){
        this.fruits = null;//What happens to the original fruits variable's value? Does it get deleted?
    }
}

您的精确示例中的变量不再引用,因此可以由垃圾收集器收集。我可以向您保证它将运行 - 即使在例外 - 但将运行时。在大多数情况下,这不是问题。

如果您已经复制了对另一个变量的引用,则根本不再在水果下引用它 - 但仍在您分配的任何其他变量下。如果在实例中仍然有很大的参考,GC无法正常工作。

如果您有一些需要及时释放(任何网络或文件句柄(的未固定资源,则可以使用IDISPOSSPOSATION和使用块。

相关内容

  • 没有找到相关文章

最新更新