gpt4 book ai didi

c# - 调用 GC.SuppressFinalize(this) 时是否存在不使用 "this"的用例?

转载 作者:IT王子 更新时间:2023-10-29 04:51:12 27 4
gpt4 key购买 nike

我刚刚实现了 Dispose 模式,当我刚刚键入 GC.SuppressFinalize(this) 行时,我想知道是否有使用 以外的东西的用例this 作为方法的参数。

这是典型的模式:

public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this); // right here
}

this 以外的东西调用 GC.SuppressFinalize() 是否有意义?

public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(foo); // should this ever happen?
}

最佳答案

根据 MSDN:

http://msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx

您的示例实际上有可能:GC.SuppressFinalize(foo)某些场景会用到,一般dispose pattern的场景不会用到。

在示例中,您可能希望为许多对象编写某种处置管理模式,而不是从您的对象中实现通用处置模式。另一种选择是,如果您希望某个对象保持隐藏状态,然后再声明它?从来没有这样做过..但这是可能的。

所以有可能是的..可能不会发生 - 可能永远不会发生。

关于c# - 调用 GC.SuppressFinalize(this) 时是否存在不使用 "this"的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992740/

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