我只是想知道,如果我将其分配的变量设置为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和使用块。