当我声明我的第一个方法时
static void Generation()
{
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我尝试使用相同的代码声明我的第二种方法时
static void Rendering()
{
}
Run Code Online (Sandbox Code Playgroud)
它收到错误“静态本地函数在 c# 7.3 中不可用”。我读到我可以通过写作来解决
<LangVersion>8.0</LangVersion>
Run Code Online (Sandbox Code Playgroud)
但我想知道为什么它第一次有效而不是第二次。
检查你的语法,特别是大括号的顺序{}等......
编译器似乎认为第二个函数以某种方式位于第一个函数内。
错误(在 C# < 7.3 中)
static void Generation()
{
static void Rendering()
{
}
}
Run Code Online (Sandbox Code Playgroud)
正确的:
static void Generation()
{
}
static void Rendering()
{
}
Run Code Online (Sandbox Code Playgroud)
请注意,第一个函数体内的许多语法错误可能会使编译器感到困惑,并使其认为第一个函数尚未在第二个函数之前结束。例如,我建议仔细检查所有的()or{}或[],并终止;。
当使用 C# 8(或 7.3)时,它不再是一个错误,因为您实际上可以static在其他函数中定义函数,但据我了解您的问题,这不是您想要做的。
| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |