我看到了这种奇怪的行为,我想知道是否有合理的解释:
当我(通过偶然)在函数的局部变量中添加额外的/额外的分号时,例如:
public void MyMethod ()
{
int a = 1;;
Console.WriteLine(a); //dummy
}
Run Code Online (Sandbox Code Playgroud)
它确实编译但它表明它是多余的.
但当我用字段(也是偶然)做到这一点时,我得到一个错误(编译):
题
这个领域的限制是否有任何理由?
Nb我已经知道不允许var使用字段的其他限制性事项.但这里有些不同.
什么时候在C/C++/C#等中使用代码块?我知道它们背后的理论原因,但你什么时候在实际程序中使用它们?
编辑:我刚刚意识到我在switch语句中使用它们,否则变量将在相同的范围内(对于类似的东西i):
switch (x) { case "abc": { /* code */ } break; }
Run Code Online (Sandbox Code Playgroud)
等等(只是为了澄清,在switch语句中,额外的括号不是必需的.)
有关: