C#静态类 - 静态类不能包含非静态成员

时间:2015-02-11 08:47:04

标签: c# static static-classes

我正在尝试理解c#语言以及为什么在静态类中的所有成员上都需要static关键字。是的,我理解静态类无法实例化,但为什么静态类中的成员 默认为静态 ,因为我们知道静态类不能具有非静态类静态成员?

例如: 为什么不能这个

public static class StaticClass
{
    public static int numberTest = 2;
}

是:

public static class StaticClass2
{
    public int numberTest = 2;
}

2 个答案:

答案 0 :(得分:3)

这是语言设计师的设计决定。当然,static类只能有static个成员,因此static限定符冗余。但如果你被迫把它放在那里,它会使事情变得更清晰,更不容易出错。当您的类和项目变大时,这变得越来越重要。

答案 1 :(得分:2)

最有可能出于历史原因。你是对的,自动隐含的static更符合语言的其他部分。

但是静态类在C#2.0中是新的,并且变化必须是非破坏性的。