Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我们需要在静态类中使用Static关键字?_C#_.net_Static - Fatal编程技术网

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

C# 为什么我们需要在静态类中使用Static关键字?,c#,.net,static,C#,.net,Static,所有成员都必须显式指定为静态,静态类不会自动将其成员设置为静态。静态类可以包含静态方法的集合 该定义解释了所有需要为静态类中的方法、成员等显式提供静态的内容 这里我真正没有得到的是,如果有一个规则,比如我们只能在静态类中声明静态成员 为什么OOPL的开发者不让它不强制执行。因此编译器应该理解(内部),即即使我们在静态类中声明了一个非静态方法,它也应该将该方法理解为static(即静态类只能有静态方法) 我在处理接口时遇到了这个疑问,即使是在接口的情况下,所有接口成员都是public,所以我们不明

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

该定义解释了所有需要为静态类中的方法、成员等显式提供静态的内容

这里我真正没有得到的是,如果有一个规则,比如我们只能在静态类中声明静态成员

为什么
OOPL
的开发者不让它
不强制执行
。因此编译器应该理解(内部),即即使我们在静态类中声明了一个非静态方法,它也应该将该方法理解为
static
(即静态类只能有静态方法)

我在处理接口时遇到了这个疑问,即使是在接口的情况下,所有接口成员都是
public
,所以我们不明确声明public
编译器将在内部理解

我所寻找的只是一个大的
为什么
而不是借口(应该是这样,它的内置功能)。

我想是因为a)更容易看到,b)是一致的:

容易看到 一致的
在某处应该有这个的副本。。。这是一个设计决定,所以我们不能回答为什么,因为我们不是语言的设计者。我喜欢达维的答案。关于你关于成员隐式公开的观点,这是正确的,但公开是默认的,而静态永远不是默认的。
selman22
这是事实,我正在寻找他们为什么这样做<代码>dav_i
看起来很有趣<代码>否决票
可悲的是,我不明白为什么。请发表评论,以便我纠正自己(如果有可能)。我在找我不知道的东西。干杯
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