gpt4 book ai didi

c# - 在方法调用前放一个代字号?

转载 作者:可可西里 更新时间:2023-11-01 08:58:37 25 4
gpt4 key购买 nike

我正在研究一个例子,我看到了这个......

#if DEBUG
/// <summary>
/// Useful for ensuring that ViewModel objects are properly garbage collected.
/// </summary>
~ViewModelBase()
{
string msg = string.Format("{0} ({1}) ({2}) Finalized", this.GetType().Name, this.DisplayName, this.GetHashCode());
System.Diagnostics.Debug.WriteLine(msg);
}
#endif

我试着用谷歌搜索它,但没有得到任何结果……我只是想知道它是什么意思。有人知道吗?

谢谢

最佳答案

它是 ViewModelBase 类的终结器。它在收集前由垃圾收集器调用。

它并不是很有用,因为:

a) 垃圾收集确实有效,您无需对其进行测试。

b) 当它在正常执行期间被调用时,它不会告诉您有关代码的任何信息,因为在大多数情况下,垃圾收集器只是做自己的事情并在确定存在内存压力时进行收集。

在大多数情况下,不用担心垃圾收集器是可以的 - 只有当您遇到真正的问题时才担心它。

另外,经验告诉我 - 避免使用终结器,因为您永远无法确定程序的其余部分在调用时将处于什么状态。

关于c# - 在方法调用前放一个代字号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742687/

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