我正在尝试理解c#语言以及为什么在静态类中的所有成员上都需要static关键字。是的,我理解静态类无法实例化,但为什么静态类中的成员 默认为静态 ,因为我们知道静态类不能具有非静态类静态成员?
例如: 为什么不能这个
public static class StaticClass
{
public static int numberTest = 2;
}
是:
public static class StaticClass2
{
public int numberTest = 2;
}
答案 0 :(得分:3)
这是语言设计师的设计决定。当然,static
类只能有static
个成员,因此static
限定符冗余。但如果你被迫把它放在那里,它会使事情变得更清晰,更不容易出错。当您的类和项目变大时,这变得越来越重要。
答案 1 :(得分:2)
最有可能出于历史原因。你是对的,自动隐含的static
更符合语言的其他部分。
但是静态类在C#2.0中是新的,并且变化必须是非破坏性的。