为什么要在C#8.0中声明局部函数为静态

问题描述 投票:5回答:1

在C#8.0中,Static Local Functions are announced

任何人都可以帮助您启发我为什么要将局部函数声明为静态的吗?

文章中给出的原因:

确保局部函数不捕获(引用)封闭范围中的任何变量

但是:

  1. 我不明白为什么,您想确保吗?
  2. 将其声明为静态还有其他原因或好处吗? (也许是性能?)

本文提供的示例代码为:

int M()
{
    int y = 5;
    int x = 7;
    return Add(x, y);

    static int Add(int left, int right) => left + right;
}
c# .net static c#-8.0 local-functions
1个回答
0
投票

我认为这只是确保按照文档说明的那样,在局部函数中使用的变量。在大型复杂方法中,它可以防止意外使用在局部函数中包含范围变量如果存在相同名称的变量

© www.soinside.com 2019 - 2024. All rights reserved.