C# 本地功能的摘要注释和参考不起作用
正如您所知,在C#7.0中添加了一些本地函数。我查看了一些使用本地函数的示例和用例,发现了使用它们的两个原因: 1) 隐藏函数或方法。原因是:如果该函数不是本地函数,其他成员可能会意外地直接使用它 2) 使用“父”函数的变量 在重构代码的调试过程中,我在VisualStudio中找不到对本地函数的引用。有对私有函数的引用: 当我调试或重构代码时,它会有所帮助。在本地函数中,我找不到它们: 所以,第一个问题是为什么本地函数不显示摘要注释和引用 有些程序员喜欢使用本地函数,但有些程序员不喜欢。以下是一个示例(来自): 根据msdn 为代码元素插入XML注释的步骤C# 本地功能的摘要注释和参考不起作用,c#,visual-studio,local-functions,C#,Visual Studio,Local Functions,正如您所知,在C#7.0中添加了一些本地函数。我查看了一些使用本地函数的示例和用例,发现了使用它们的两个原因: 1) 隐藏函数或方法。原因是:如果该函数不是本地函数,其他成员可能会意外地直接使用它 2) 使用“父”函数的变量 在重构代码的调试过程中,我在VisualStudio中找不到对本地函数的引用。有对私有函数的引用: 当我调试或重构代码时,它会有所帮助。在本地函数中,我找不到它们: 所以,第一个问题是为什么本地函数不显示摘要注释和引用 有些程序员喜欢使用本地函数,但有些程序员不喜欢。以
- 在C#中键入//,或在Visual Basic中键入“”
- 从编辑菜单中,选择IntelliSense>插入注释
- 从代码元素上或其正上方的右键单击或上下文菜单中,选择Snippet>Insert Comment
然而,文件中没有提到关于“不支持本地函数”的免责声明。对于第二个问题,如果一个函数
A
多次使用本地函数B
,并且B
未被其他函数使用,则将B
声明为本地函数似乎是可以接受的。对于第一个问题。我在vs2019中测试了在本地函数的顶部输入3个斜杠,ide不会生成摘要文本。我假设ide不支持本地函数的摘要,因为您可以只添加一行注释。@LouisGo关于引用呢?我找不到关于“不支持它”的明确声明,但在msdn中添加摘要的任何方法都不能使用本地函数。为了便于阅读,我将其作为一个答案发布。
public IEnumerable<T> Filter<T>(IEnumerable<T> source, Func<T, bool> filter)
{
if (source == null) throw new ArgumentNullException(nameof(source));
if (filter == null) throw new ArgumentNullException(nameof(filter));
return Iterator();
IEnumerable<T> Iterator()
{
foreach (var element in source)
{
if (filter(element)) { yield return element; }
}
}
}
public IEnumerable<T> Filter<T>(IEnumerable<T> source, Func<T, bool> filter)
{
if (source == null) throw new ArgumentNullException(nameof(source));
if (filter == null) throw new ArgumentNullException(nameof(filter));
#region Iterating
foreach (var element in source)
{
if (filter(element)) { yield return element; }
}
#endregion
}