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