为什么我们需要在Static类中使用Static关键字?

时间:2015-02-16 11:01:13

标签: c# .net static

  

必须将所有成员显式指定为静态,静态类不会自动使其成员成为静态成员。静态类可以包含静态方法的集合。

该定义解释了所有我们需要为静态类中的方法,成员等明确赋予静态。

我真的没有到达的地方是,如果有一条规则,我们只能在静态类中声明静态成员

为什么OOPL的开发者没有not mandate。所以编译器应该理解(内部),即使我们在静态类中声明一个非静态方法,它应该将方法理解为static(即静态类只能有静态方法)。

当我在接口上工作时,我怀疑这一点,即使在接口的情况下,所有接口成员都是public,所以我们不要声明,然后公共explicitly编译器将在内部理解。

我所期待的只是一个大的WHY而不是借口(应该是这样,它的内置功能)。

1 个答案:

答案 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