33

如果我编写函数:

    public static uint FindAUint(double firstParam)
    {

    }

我可以通过键入“///”来生成 xml 注释,它给出:

    /// <summary>
    /// *Here I type the summary of the method*
    /// </summary>
    /// <param name="firstParam">*Summary of param*</param>
    /// <returns>*Summary of return*</returns>
    public static uint FindAUint(double firstParam)
    {

    }

如果我决定我需要将我的方法更新为:

    /// <summary>
    /// *Here I type the summary of the method*
    /// </summary>
    /// <param name="firstParam">*Summary of param*</param>
    /// <returns>*Summary of return*</returns>
    public static uint FindAUint(double firstParam,double newParam, double newParam2)
    {

    }

有没有办法让 Visual Studio 将新参数添加到 xml 中而不会丢失以前的描述?

(我应该提到我正在使用 Visual Studio Express;不过,我不会让微软在 Express 版本中禁止该功能)

4

3 回答 3

14

查看GhostDoc。它是一个 Visual Studio 扩展,可为您生成 XML 注释。

于 2012-05-04T15:10:30.190 回答
5

ReSharper对我来说非常好用;只要 XML 注释与方法的签名不匹配,它就会发出警告。

此外,使用ALT+ENTER键盘快捷键,ReSharper 可以通过添加/删除必要的 XML 注释来修复这些不匹配。

于 2012-05-04T15:20:35.390 回答
0

一种解决方法是选择 XML 文档的当前块并将其注释掉。然后在注释掉的代码下创建一个新行。将使用所有新值创建一个新的 XML 文档块,您可以复制粘贴旧值。

例子:

/// <summary>
/// Does something
/// </summary>
/// <param name="bar">True if not false</param>
/// <returns>Some really important value</returns>
public bool Foo(bool bar) {
    return bar;
}

方法的改变

/// <summary>
/// Does something
/// </summary>
/// <param name="bar">True if not false</param>
/// <returns>Some really important name</returns>
public string Foo(bool bar, string bar2, int bar3) {
    if (bar) {
        return bar2 + bar3.ToString();
    } else {
        return "foobar";
    }
}

注释掉文档

///// <summary>
///// Does something
///// </summary>
///// <param name="bar">True if not false</param>
///// <returns>Some really important name</returns>
public string Foo(bool bar, string bar2, int bar3) {
    if (bar) {
        return bar2 + bar3.ToString();
    } else {
        return "foobar";
    }
}

在注释掉的代码下的新行中输入///以获取生成的 XML 文档。

///// <summary>
///// Does something
///// </summary>
///// <param name="bar">True if not false</param>
///// <returns>Some really important value</returns>
/// <summary>
/// 
/// </summary>
/// <param name="bar"></param>
/// <param name="bar2"></param>
/// <param name="bar3"></param>
/// <returns></returns>
public string Foo(bool bar, string bar2, int bar3) {
    if (bar) {
        return bar2 + bar3.ToString();
    } else {
        return "foobar";
    }
}
于 2021-12-30T03:48:52.510 回答