我刚刚实现了Dispose模式,当我输入GC.SuppressFinalize(this)
行时,我想知道是否有一个用例来使用this
之外的其他东西作为方法的参数
这是典型的模式:
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this); // right here
}
使用GC.SuppressFinalize()
以外的其他内容来呼叫this
是否有意义?
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(foo); // should this ever happen?
}
答案 0 :(得分:2)
根据MSDN:
http://msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx
事实上你的例子可能是:GC.SuppressFinalize(foo) 将在某些情况下使用,但不会在常见处置模式的情况下使用。
在示例中,您可能希望为许多对象编写某种处置管理模式,而不是在对象中实现公共配置模式。另一个选择是,如果你想要一个对象保持抑制,以后可能会声称它?从来没有这样做..但这是可能的。
所以可能是的......可能不会发生 - 也许永远不会发生。