相关疑难解决方法(0)

为什么是 ;; 在局部变量声明之后允许,但在字段声明之后不允许?

我看到了这种奇怪的行为,我想知道是否有合理的解释:

当我(通过偶然)在函数的局部变量中添加额外的/额外的分号时,例如:

public void MyMethod ()
{
    int a = 1;;
    Console.WriteLine(a); //dummy 
}
Run Code Online (Sandbox Code Playgroud)

它确实编译但它表明它是多余的.

在此输入图像描述

但当我用字段(也是偶然)做到这一点时,我得到一个错误(编译):

在此输入图像描述

这个领域的限制是否有任何理由?

Nb我已经知道不允许var使用字段的其他限制性事项.但这里有些不同.

c# compiler-errors

59
推荐指数
3
解决办法
2656
查看次数

你什么时候使用代码块?

什么时候在C/C++/C#等中使用代码块?我知道它们背后的理论原因,但你什么时候在实际程序中使用它们?

编辑:我刚刚意识到我在switch语句中使用它们,否则变量将在相同的范围内(对于类似的东西i):

switch (x) { case "abc": { /* code */ } break; }
Run Code Online (Sandbox Code Playgroud)

等等(只是为了澄清,在switch语句中,额外的括号不是必需的.)


有关:

.net c# coding-style codeblocks curly-braces

4
推荐指数
1
解决办法
5417
查看次数