必须将所有成员显式指定为静态,静态类不会自动使其成员成为静态成员。静态类可以包含静态方法的集合。
该定义解释了所有我们需要为静态类中的方法,成员等明确赋予静态。
我真的没有到达的地方是,如果有一条规则,我们只能在静态类中声明静态成员
为什么OOPL
的开发者没有not mandate
。所以编译器应该理解(内部),即使我们在静态类中声明一个非静态方法,它应该将方法理解为static
(即静态类只能有静态方法)。
当我在接口上工作时,我怀疑这一点,即使在接口的情况下,所有接口成员都是public
,所以我们不要声明,然后公共explicitly
编译器将在内部理解。
我所期待的只是一个大的WHY
而不是借口(应该是这样,它的内置功能)。
答案 0 :(得分:0)
我想是因为a)它更容易看到而且b)是一致的:
public static class WithoutStaticMembers
{
public string GetString() // easy to miss that it is static
{
return "string";
}
}
public static class WithStaticMembers
{
public static string GetString() // clearly static
{
return "string";
}
}
public class NotStaticClass
{
public static string GetString()
{
return "string";
}
}
public static class StaticClass
{
public static string GetString()
{
return "string";
}
}
// ...
var s1 = NotStaticClass.GetString();
var s2 = StaticClass.GetString(); // consistent across both static class and not static