C# 中 Action 参数的 XML 文档

Opt*_*ion 5 c# xml-documentation

我正在寻找一种在 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)
Run Code Online (Sandbox Code Playgroud)

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

Gun*_*san 1

您可以使用嵌套结构。

/// <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){}
Run Code Online (Sandbox Code Playgroud)

在编辑器中看起来像这样:

在此输入图像描述

然而,对于复杂的结构,从长远来看,这更难以维护。如果上下文直观上不明显,那么创建一个类会更好、更安全。

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){} 
Run Code Online (Sandbox Code Playgroud)