1
5
要正确地编写终结器几乎是不可能的,在一个终结器中完成这种工作只会导致灾难。更不用说它会破坏性能并且无法调试。终结器的第一条规则是永远不要使用它们。规则2(仅适用于高级用户)是不要使用它们,除非你真的确定你必须这样做。
如果您确实想做这样的事情,那么我会将其作为显式调用,并简单地使用finalizer在调试期间捕获未调用显式方法的情况,例如。
|
2
6
Dispose应该什么都不做,只处理你的资源。我强烈建议将其移到另一个方法,并使其成为对象的API的一部分,而不是依赖IDisposable来为您处理。 |
3
4
首先,我认为你的设计很薄弱,因为你的班级违反了 Single Responsibility Principle . 更可取的做法是区分两种职责:可序列化实体和将此实体保存/读取到持久存储中。在大多数情况下,可序列化实体是lightwait,而可终结类不是。 第二,应该避免终结器中的复杂逻辑。例如,最好将可序列化类保存到持久性存储中储存、处置方法。而从finalizer方法只能将警告写入日志文件,因为它显示了不适当的类存储使用情况:
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |