C# Visual Studio文档对Lambda的评论

C# Visual Studio文档对Lambda的评论,c#,visual-studio,lambda,C#,Visual Studio,Lambda,在c#中,您可以使用以下函数添加文档注释: /// /// /// /// /// 当使用普通函数时,会自动生成。但是,当使用lambdas时,不会发生任何事情。有没有办法在lambda中使用文档注释?首先,到目前为止,没有办法使用//来记录lambda或等效文件 详细说明一下: 通常lambda不应该太复杂而无法理解或阅读。如果是这样,将其提取到完整的函数或方法中会是更好的做法,那么您可以添加//,用您的摘要或您通常需要的内容对其进行注释。因此,我认为不需要对lambda发表“文档”评论,也

在c#中,您可以使用以下函数添加文档注释:

///
///
///
///
///

当使用普通函数时,会自动生成。但是,当使用lambdas时,不会发生任何事情。有没有办法在lambda中使用文档注释?

首先,到目前为止,没有办法使用
//
来记录lambda或等效文件

详细说明一下:

通常lambda不应该太复杂而无法理解或阅读。如果是这样,将其提取到完整的函数或方法中会是更好的做法,那么您可以添加
//
,用您的摘要或您通常需要的内容对其进行注释。因此,我认为不需要对lambda发表“文档”评论,也不太可能发生

旁注


简而言之,Lambda是一个匿名函数,因此即使将其提取到单独的函数中,性能也没有太大差异,除非复制大型对象,而不是通过引用传递它们。

许多Lambda表达式不需要编写文档,因为它已经存在

例如,如果向
Where
子句提供lambda表达式,则函数已被记录(尽管它没有太多的细节):

谓词

类型:System.Func

测试每个元素的条件的函数

我建议,如果您有一个扩展方法或其他类型的代码将lambda表达式作为参数,那么记录其输入和输出的适当位置是使用它的方法,而不是设置它的代码

另一方面,如果您需要记录lambda特定实现的内部工作(即,它非常复杂),我建议您将其实现为与签名匹配的标准c#方法

因此而不是

Users
.Where( r => {
    DoSomethingComplicated();
    MoreCode();
    return FinalResult();
});
你只要写

Users.Where( MyFunction )
然后在别处定义函数:

/// <summary>
/// This function calls DoSomethingComplicated and MoreCode
/// </summary>
/// <returns> A Boolean specifying whether the user should be included </returns>
bool MyFunction(User user)
{
    DoSomethingComplicated();
    MoreCode();
    return FinalResult();
}
//
///此函数调用doSomethingComplex和MoreCode
/// 
///一个布尔值,指定是否应包括用户
bool MyFunction(用户)
{
dosomething复杂();
MoreCode();
返回FinalResult();
}

我认为您不能。旁注-这是特定于visual studio的,而不是c。我相应地更新了标签和标题。如果你的lambda足够复杂,需要文档,你可以将它们定义为“普通”函数,然后你可以得到你想要的注释。