我有以下代码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>
{
}
我没有看到任何关于我的东西违反它所显示的标准,我尝试了各种奇怪的事情,但我不知道我应该在这里做什么。
答案 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
};
}
}