C# 对象有效

标签 c# pointers

您可以检查一个对象是否为空,但您可以检查一个对象是否有效吗?

Assert.IsValid(object_name);

例如,对象已被垃圾收集器删除或有人对其进行了处理。但是指针仍然指向那个对象。

最佳答案

如果对象已被垃圾收集器释放,根据定义,您将不会拥有对它的引用。

如果它已被处置并且这对对象的有效性很重要,则该类型应该提供一种确定方法。 (例如,在某些情况下,Dispose 可能仅表示“重置”。)

虽然允许引用已处置对象的可能性很少是合适的 - 如果您使用:

using (Foo foo = new Foo())
{
    ...
}

然后对象将在 foo 超出范围的同时被释放,所以这不是问题。

关于C# 对象有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915511/

相关文章:

c# - Blazor Server Scoped 在刷新页面时再次初始化

c# - 在 WebView (WinRT) 的外部浏览器中打开链接

c# - ISupportIncrementalLoading 只触发一次

c - json-c 解析 - 取消引用指向不完整类型的指针时出错

c - 我很困惑的基本 C 指针声明和指针变量

c# - 任务在哪个核心上运行?

c# - List<T>.AddRange 导致了短暂的延迟

C++两次传递函数指针导致问题

c - 我应该如何在函数中传递结构?

c - C结构中成员的地址