gpt4 book ai didi

c# - C# 中的 IDisposable 接口(interface)

转载 作者:太空狗 更新时间:2023-10-30 01:05:46 26 4
gpt4 key购买 nike

我在学习 C# 时读到了一个名为 IDisposable 的接口(interface),其中唯一的 Dispose() 方法是使用 using 语法调用它的。如果我使用以下内容:

Class b=new Class();
using(b)
{
//statements
}

using (Class o=new Class())
{
//statements
}

如果我在两种情况下都尝试使用大括号结束后的对象 b 和 o,会发生什么情况?

最佳答案

b 仍将在范围内而不是 null,但是如果您在它们具有 Dispose 调用(从而阻止您进一步使用它)。

它将编译并且可能仍然可用——这完全取决于它是如何在内部实现的。但是,您不应使用它,因为它的状态无法保证并且会产生令人困惑的代码。

o 将超出范围并且不会编译。

所有 using 语句所做的是导致编译器发出一些 try-catch 语句并在包装对象上调用 Dispose。它什么都不做。

关于c# - C# 中的 IDisposable 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449156/

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