StyleCop SA1620,我不知道如何解决我喜欢的XML评论

时间:2014-03-14 14:22:00

标签: c# stylecop

我有以下代码w / comments :(它确实编译)

/// <summary>
/// return a passing result of a particular type
/// </summary>
/// <typeparam name="T">Type of the value to be returned</typeparam>
/// <param name="value">the value to be returned</param>
/// <returns>a passing result</returns>
public static Result<T> Pass(T value)
{
    return new Result<T>()
    {
        Passed = true,
        Value = value
    };
}

我收到以下警告

  

警告1 SA1620:CSharp.Documentation:   必须包含文档标题中的typeparam标记   匹配方法的泛型类型。

我确实查看了此错误的帮助页面,其中给出了以下解释:

  

要修复违反此规则的行为,请添加并填写一个标记   对于元素上的每个泛型类型参数,并确保   标签的显示顺序与元素的类型相同   参数。

它提供了示例代码:

/// <summary>
/// A sample generic class.
/// </summary>
/// <typeparam name="S">The first generic type parameter.</typeparam>
/// <typeparam name="T">The second generic type parameter.</typeparam>
public class Class1<S, T>
{ 
}

我没有看到任何关于我的东西违反它所显示的标准,我尝试了各种奇怪的事情,但我不知道我应该在这里做什么。

1 个答案:

答案 0 :(得分:8)

这可以编译的唯一方法是这个方法是否在class中是通用的T。此方法没有任何类型参数。如果它是通用的,那么在方法名称后面会有类型参数:

public static Result<T> Pass<T>(T value)
{
    return new Result<T>()
    {
        Passed = true,
        Value = value
    };
}

但是你的方法并非如此。所以一定是:

class SomeClass<T>
{
  public static Result<T> Pass(T value)
  {
      return new Result<T>()
      {
          Passed = true,
          Value = value
      };
  }
}

有关type参数的任何文档都属于类级别。 E.g:

/// <summary>
/// This is a result class
/// </summary>
/// <typeparam name="T">Type of the value to be returned</typeparam>
public class Result<T>
{
    public bool Passed { get; set; }
    public T Value { get; set; }
    /// <summary>
    /// return a passing result of a particular type
    /// </summary>
    /// <param name="value">the value to be returned</param>
    /// <returns>a passing result</returns>
    public static Result<T> Pass(T value)
    {
        return new Result<T>()
        {
            Passed = true,
            Value = value
        };
    }
}