为什么C#析构函数需要XML文档?

时间:2011-03-31 15:57:15

标签: c# finalizer

我喜欢将我的C#代码的注释和Xml文档保持在最低限度。建议尽可能使代码自我记录。

但是如果我没有在公共类的析构函数上放置Xml注释,则C#编译器会发出警告。这是为什么?

我是否应该将一些有用的信息放入Xml评论中,我没有这样做过。我自己从未发现需要阅读析构函数的评论。编译器是否过于热心?

4 个答案:

答案 0 :(得分:2)

如果启用XML Doc注释,编译器将要求您记录API中的所有内容。析构函数是API的一部分,确实应该包含在内。

析构函数通常应仅存在于IDisposable类中,并且记录它确实有助于发出信号/提醒人们在对象上调用Dispose(),因为这样做(如果正确实现)将显着减少GC压力。

答案 1 :(得分:1)

我怀疑,虽然我没有证据,警告只是因为它在所有未标记为私有的方法上查找文档注释而触发。我怀疑有一个特定的规则,析构函数特别需要注释。

答案 2 :(得分:0)

对于使用您的代码的人来说,确切知道终结器的作用可能会有所帮助。换句话说,如果您正在使用大量非托管资源,那么如果文档清楚地概述了您的类在释放时对这些资源的处理方式将会有所帮助。

答案 3 :(得分:0)

它坚持认为,因为你的类是公开的,C#析构函数最终会覆盖protected method,这可以从程序集外部看到。