XML C# 中 Action 参数的文档

XML documentation of Action parameters in C#

我正在寻找一种在 C# 中记录操作参数的方法。 代码如下所示:

/// <summary>
/// Do some action with parameters.
/// </summary>
/// <params name="someAction"> This is action but what about parameters? </param>
public void Do(Action<int,int,string> someAction)

如何命名和记录 "someAction" 的参数,以便它们出现在智能感知中?

简而言之 - 不可能。一些可能的解决方法:

  • 使用class或结构代替多个参数。例如。而不是 Action 使用 Action
  • 尽可能减少参数数量。也许有些不是必需的,简单的 Action 就可以了。
  • 写参数注释...这没有多大帮助,但会给你 Whosebug 积分。
  • 如果对代表不过敏,请改用它们。

您可以使用嵌套结构。

/// <summary>
/// Does something useful.
/// </summary>
/// <param name="c">A constant</param>
/// <param name="someAction">
///     Here is an action.
///     <param name="someAction arg1">Count</param>
///     <param name="someAction arg2">Length</param>
///     <param name="someAction arg2">Content</param>
/// </param>
public void Do(int c, Action<int,int,string> someAction){}

在编辑器中看起来是这样的:

然而,对于复杂的结构,这在长期 运行 中更难维护。如果上下文直观上不明显,那么创建一个 class.

会更好也更安全
public class MyActionArgs : ActionArgs
{
    public MyActionArgs(int count, int length, string content)
    {
        Count = count;
        Length = length;
        Content = content ?? throw new ArgumentNullException(nameof(content));
    }

    public int Count { get; }
    public int Length { get; }
    public string Content { get; }
}

public void Do(Action<MyActionArgs> myAction){}