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){}
我正在寻找一种在 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){}