从C#终结器调用静态方法

问题描述 投票:4回答:1

Jeffrey Richter通过C#书在其CLR中(如在示例章节Working with Types Requiring Special Cleanup中在线看到的内容表示:]]

[此外,CLR对于Finalize方法的调用顺序也不做任何保证。因此,您应该避免编写Finalize方法来访问其他类型定义了Finalize方法的对象。这些其他对象可能已经完成。但是,完全可以访问未定义Finalize方法的值类型实例或引用类型对象。 您在调用静态方法时也需要小心,因为这些方法可以在内部访问已完成的对象,从而导致静态方法的行为变得不可预测

我从上面的引言中了解了所有内容,但是句子以粗体显示。如果静态方法只能使用其他引用由于其生命周期而无法最终确定的对象的静态成员,那么该方法如何在内部使用最终确定的对象?为什么调用实例方法安全?抱歉,我的结论可能是错误的,因此,感谢您对此问题的任何解释。预先感谢。

[杰弗里·里希特(Jeffrey Richter)通过C#书在其CLR中(如在示例章节中的需要特殊清除的在线文章中所见)表明以下内容:此外,CLR对...不作任何保证。

c# .net static clr finalizer
1个回答
0
投票

例如,我们有两个类:

© www.soinside.com 2019 - 2024. All rights reserved.