我有一个带有终结器的课程。但由于我一直在调用Dispose()
并且Dispose()
正在调用GC.SupressFinalize(this)
,我认为我的对象实际上从未进入终结队列。终结器只是在那里作为后盾,以防该类的另一个用户忘记调用Dispose()
.
即使从未调用终结器并且对象从未进入终结队列,仅实现终结器是否有任何性能损失?
我以前不这么认为,但是在 Bill Wagner 的Effective C#: Second Edition的第 102 页上,它说:“即使它从未被调用,终结器的存在确实会给你的类型带来相当大的性能损失。”