gpt4 book ai didi

c# - C# 如何使用语句转换为 Try-Finally

转载 作者:太空狗 更新时间:2023-10-29 22:11:54 25 4
gpt4 key购买 nike

我正在努力解决这个问题。根据this pageUsing 语句上:

The using statement ensures that Dispose is called even if an exception occurs while you are calling methods on the object. You can achieve the same result by putting the object inside a try block and then calling Dispose in a finally block; in fact, this is how the using statement is translated by the compiler.

但是在 this page关于 Try-Finally block ,它指出:

Within a handled exception, the associated finally block is guaranteed to be run. However, if the exception is unhandled, execution of the finally block is dependent on how the exception unwind operation is triggered.

那么,如果 Using 语句转换为不能保证调用的 Try-Finally,那么如何保证在发生异常时调用 Dispose 方法最后声明?

最佳答案

它确实表现得像 try/finally - 所以如果应用程序终止,资源可能不会被释放......这通常没问题,因为通常释放是为了释放进程持有的资源......和操作系统无论如何都会在进程死亡时整理它们。 (这并不是说 Dispose 方法不会被调用...它与普通的 try/ 一样终于。)

显然,如果您在文件系统上有一个“锁定文件”或类似的东西,那将是一个问题 - 但您在遇到断电等情况时也会遇到同样的问题。

关于c# - C# 如何使用语句转换为 Try-Finally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35162051/

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