在C#8.0中,Static Local Functions are announced
任何人都可以帮助您启发我为什么要将局部函数声明为静态的吗?
文章中给出的原因:
以确保局部函数不捕获(引用)封闭范围中的任何变量
但是:
本文提供的示例代码为:
int M()
{
int y = 5;
int x = 7;
return Add(x, y);
static int Add(int left, int right) => left + right;
}
我认为这只是确保按照文档说明的那样,在局部函数中使用的变量。在大型复杂方法中,它可以防止意外使用在局部函数中包含范围变量如果存在相同名称的变量。