为什么 XML 文档注释在顶级 C# 程序中不起作用?



当我用顶级语句创建c#项目时,方法前的xml注释不起作用。

例如,在这段代码中,在写了三个斜杠(///)之后,应该出现一个xml注释(如下所示),并且在将鼠标悬停在方法上之后,Visual Studio应该显示该方法的描述:

Summarize(15, 35);
/// <summary>
/// Description.
/// </summary>
int Summarize(int a, int b)
{
return a + b;
}

你的Summarize方法是一个局部函数的例子。尽管顶级语句支持局部函数,但它们不支持三斜杠注释。这个问题已经在GitHub上被提出,但不清楚微软是否会解决这个问题。

同时,你有潜在的变通方法。最明显的(除了不使用顶级语句)是在局部函数上使用双斜杠注释。但是,这将无法实现三斜杠注释提供的一些细节,例如IntelliSense集成和文档生成。

另一个选择是将函数包装在Program.cs末尾定义的静态类中,如下所示:

public static class Utilities
{
/// <summary>
/// Triple-slash comment works!
/// </summary>
public static void Summarize() {}
}

然后像这样调用它:

Utilities.Summarize();

你可能想把这个类放在一个单独的文件中。如果你把它放在Program.cs中,它必须放在底部,因为规则是顶级语句必须在类型声明之前。

相关内容