您可以检查一个对象是否为空,但您可以检查一个对象是否有效吗?
Assert.IsValid(object_name);
例如,对象已被垃圾收集器删除或有人对其进行了处理。但是指针仍然指向那个对象。
最佳答案
如果对象已被垃圾收集器释放,根据定义,您将不会拥有对它的引用。
如果它已被处置并且这对对象的有效性很重要,则该类型应该提供一种确定方法。 (例如,在某些情况下,Dispose
可能仅表示“重置”。)
虽然允许引用已处置对象的可能性很少是合适的 - 如果您使用:
using (Foo foo = new Foo())
{
...
}
然后对象将在 foo
超出范围的同时被释放,所以这不是问题。
关于C# 对象有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915511/