ric*_*ard 24 .net c# implicit static-members static-classes
显然,静态类上不能有实例成员,因为该类永远不会被实例化.为什么我们需要将成员声明为静态?
Eri*_*ert 44
我总是被问到这样的问题.基本上问题归结为"当一个关于声明成员的事实可以由编译器推断出来时,该事实的明确声明是否需要(1),(2)是可选的,还是(3)被禁止?"
没有一个简单的答案.每个人都必须根据具体情况进行.将"static"放在静态类的成员上是必需的.将"new"放在派生类的隐藏,非重写方法上是可选的.禁止在const上加"static".
简单地考虑一下你的情景,让它被禁止似乎很奇怪.你有一整个类标有"静态"的方法.您决定使类静态,这意味着您必须删除所有静态修饰符?那真是怪了.
让它成为可选的似乎很奇怪; 假设你有一个静态类和两个方法,一个标记为静态,一个不标记.由于静态通常不是默认值,因此很自然地认为它们之间存在差异.使其成为可选项似乎可能令人困惑.
这使它成为必需,作为三个选项中最不好的.
有关这些问题的更多信息,请参见http://blogs.msdn.com/b/ericlippert/archive/2010/06/10/don-t-repeat-yourself-consts-are-already-static.aspx.