首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么;允许在局部变量声明之后,而不是在字段声明之后?

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

Stack Overflow用户
提问于 2018-05-10 02:02:39
回答 2查看 0关注 0票数 0

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

当我(偶然地)在函数的局部变量中添加一个额外的分号时,如下所示:

代码语言:txt
复制
public void MyMethod ()
{
    int a = 1;;
    Console.WriteLine(a); //dummy 
}

它确实编译了,但它表明它是多余的。

但是,当我使用字段(也是偶然的)执行该操作时,我得到了一个错误(编译):

问题

在领域中,有什么理由造成这种限制吗?

注:我已经知道另一个限制因素就是不允许var带着田野。但这里有些不同。

EN

回答 2

Stack Overflow用户

发布于 2018-05-10 10:35:54

;单独是一条语句(空语句),但只有声明语句允许出现在类的正文中;其他类型的语句只能出现在方法的正文中。

票数 0
EN

Stack Overflow用户

发布于 2018-05-10 12:00:19

;它本身就是一个空语句。在类范围中,只分配声明语句。C# Specification 5.0, §10.1.6 Class Body

代码语言:txt
复制
class-body:
{   class-member-declarations   }

例如,不能在单独的语句中初始化字段:

代码语言:txt
复制
class Foo 
{
    int x = 2; // this is allowed 
    x = 5; // this is not
}

因此,只能声明字段和其他成员,但不能在类主体中使用其他语句。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档