2010-08-06 29 views
1

我知道,StyleCop是不完美的,但我们尝试以有用的方式使用它。我确实喜欢它抱怨没有证据的论点。现在,对于属性和构造函数,它建议文本应该是什么,但它不会帮助Dispose方法,我认为它应该。我们有很多类实现IDisposable。在这种特殊情况下,课程是WinForm。麻烦的是,我还没有能够为Dispose方法提供出色的文档,而且我也没有在网上看到过很好的例子。许多例子都没有任何评论。我希望有人觉得像Dispose方法是他们的第二天性,可以帮助我一劳永逸地记录这一点,以便我可以在任何地方重新使用此评论。寻找Stylecop的完美评论`保护覆盖无效处置(布尔处置)`

这里是我们所拥有的:

/// <summary> 
    /// Clean up any resources being used. 
    /// </summary> 
    protected override void Dispose(bool disposing) 
    { 
     if (disposing) 
     { 
      if (this.components != null) 
      { 
       this.components.Dispose(); 
      } 
     } 

     base.Dispose(disposing); 
    } 

,这里是警告消息:

Warning 15 SA1611: The documentation header must contain param tags matching the element's parameter list. 

我希望其他这样用户会发现这个问题的答案有帮助。 如果您有任何疑问,请告诉我。

回答

2

这是从项目模板自动生成的代码。唯一真正的解决方法是更改​​模板或编辑Designer.cs源代码文件。该模板位于Common7 \ IDE \ ItemsTemplate(Cache)\ CSharp \ Windows Forms \ xxxx \ Form.zip \ form.designer.cs中。编辑它当然只会解决未来项目的问题。

编辑自动生成的代码通常不是最好的想法,但是在这种特殊情况下你会摆脱它。

+0

嗯......好的信息,我愿意惹恼它。我所要做的只是打开一个对话框,然后更改一个标签并将其改回 - 然后应该将文件保存为更接近我想要的格式。 – 2010-08-06 16:18:01

1

有一些很好的意见here,但它不符合StyleCop标准。你需要的是:

/// <summary> 
/// Releases the unmanaged resources used by this 
/// class and optionally releases the managed resources. 
/// </summary> 
/// <param name="disposing">True to release both managed and unmanaged 
/// resources; false to release only unmanaged resources.</param> 

希望这有助于!

+0

好东西,但想要仔细检查 - 这种特殊的评论在一般情况下是合适的,或者只有当我实际上与非托管的东西进行交互时,例如使用C# - > C++/CLI - > C++'桥接器时才适用。 – 2010-08-06 16:16:16

+0

我通常只留下这个注释,并且也编写了终结器,但是如果我知道我的类不会使用非托管资源,那么将其注释掉。所以,如果你主要做非托管的东西,那么上面的评论以及微软链接就足以满足你的情况。 – 2010-08-06 16:21:29

1

您可以使用GhostDoc进行调查。它通常会搜索继承树并从父类中找到注释。在这种情况下,由于Dispose方法被覆盖,它会发现有意义的评论。

+0

它确实通常会找到它们,但它们是可信的,还是只能用作模板? – 2010-08-10 15:49:20

+0

如果您的覆盖执行作业注释状态,则可以按原样使用它们。如果你改变了行为,那么你将需要修改评论以适应。 – 2010-08-10 15:50:50