c# - 在 C# 中声明我的第二个方法时,出现错误 "Static local functions is not available in c# 7.3"

标签 c#

当我声明我的第一个方法时

static void Generation()
{
}

它工作得很好,但是当我尝试使用相同的代码声明我的第二个方法时

static void Rendering()
{
}

它收到错误“静态本地函数在 c# 7.3 中不可用”。我读到可以通过写来修复

<LangVersion>8.0</LangVersion>

但我想知道为什么它第一次有效而第二次不起作用。

最佳答案

检查您的语法,特别是大括号 {} 的顺序等...

编译器似乎认为第二个函数以某种方式位于第一个函数内。

错误(在 C# < 7.3 中)

static void Generation()
{
static void Rendering()
{
}
}

正确:

static void Generation()
{
}
static void Rendering()
{
}

请注意,第一个函数体内的许多语法错误可能会使编译器感到困惑,并使其认为第一个函数尚未在第二个函数之前结束。例如,我建议仔细检查所有 (){}[] 对,并终止 ; .

当使用 C# 8(或 7.3)时,它不再是错误,因为您实际上可以在其他函数中定义 static 函数,但据我了解您的问题,这不是您想要做的.

关于c# - 在 C# 中声明我的第二个方法时,出现错误 "Static local functions is not available in c# 7.3",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62980345/

相关文章:

c# - 配置 Entity Framework 以从 Azure CloudConfiguration 文件中选择连接字符串?

c# - 将 .rtf 文件加载到 RichTextBox 中并维护/保留格式

c# - 我如何在 desfire ev1 中进行 native 身份验证

c# - 将字符串中的每个单词按特定顺序交换

C# Socket 打印有时没有反应?

c# - 如何将字符串 key 和 IV 转换为 Rijndael 的字节数组

C# : public observablecollection<ViewModel> instance pass items to protected observablecollection<ViewModel>

c# - 关于线程池最大线程的说明

C# 模型到 Javascript 对象 - 使用 knockout.js

c# - WriteableBitmap.Lock() 性能问题