我了解如何使用 XML 标签在调用方法时填充 Intellisense 描述。然而,我想集中各种参数(其中 6 个)的定义,这样我就不需要在数十个具有相似参数的公式中复制/粘贴相同的 XML 标签。
将它们定义为单个列表也会很有帮助,这样每个方法只有一个装饰器,例如 [MyCommonParameters],而不是每个方法有 6 行定义。
例如,在下面的简化代码中,我有两个采用相同输入的函数。最好只需要定义一次参数描述,以便在整个项目规模扩大后具有更好的可维护性。
public static class MyClass
{
/// <param name="x">x description</param>
/// <param name="y">y description</param>
public static int Add_XY(int x, int y)
{
return x + y;
}
/// <param name="x">x description</param>
/// <param name="y">y description</param>
public static int Subtract_XY(int x, int y)
{
return x - y;
}
}
我尝试过使用装饰器/属性,但由于输入似乎需要静态文本而陷入困境,并且无法传递包含定义的变量。我对使用属性还没有很强的掌握,所以我可能只是错过了如何使用自定义属性来实现它。
是的,有一种方法,如此处所述。
例如,您可以将一个名为“CodeDoc.xml”的文件添加到您的项目中,其中包含以下内容:
<?xml version="1.0" encoding="utf-8" ?>
<doc>
<members>
<member name="M:MyNamespace.MyType.MyMethod">
<param name="x">Description of 'x' parameter</param>
<param name="y">Description of 'x' parameter</param>
</member>
</members>
</doc>
然后更改 XML 注释以引用它,如下所示:
public static class MyClass
{
/// <include file="CodeDoc.xml" path="doc/members/member[@name='M:MyNamespace.MyType.MyMethod']/*" />
public static int Add_XY(int x, int y)
{
return x + y;
}
/// <include file="CodeDoc.xml" path="doc/members/member[@name='M:MyNamespace.MyType.MyMethod']/*" />
public static int Subtract_XY(int x, int y)
{
return x - y;
}
}
您可以更改namespace.mytype.mymethod内容以适应。