任何人都知道IL/CLR是如何生成本地函数C#7
c#
c#-7.0
https://www.infoworld.com/article/3182416/c-7-in-depth-exploring-local-functions.html
我真的需要确切地知道本地函数应该如何遵循代码。
是 0% IL 代码/MSIL 经验。
public static void Display(string str)
{
int ctr = 5;
DisplayText();
void DisplayText ()
{
for(int i = 0; i < ctr; i++)
Console.WriteLine(str);
}
}
我需要从以前的代码中了解的问题:
- 如果我们调用 main 函数,
Display()是否DisplayText()总是在调用 main 函数时生成Local Function ?或者它在 C# 中创建为一个假的本地函数,但在 MSIL 中它生成为全局函数? - 在lamda表达式中?上面一样吗?
- 依赖本地函数是否安全?或者我们无论如何都不要使用它。(性能可能idk)
编辑:-我认为本地属性(尚不存在或可能......)。有时也很有用。您可以在与本地属性相同的方法中进行一些计算。如上一个示例,但 DisplayText 是属性。希望他们也添加它。