既然static类是不能声明实例的,那么天然的,其成员和方法都成为static的不就行了吗?
为什么还要显示的给static类的成员和方法加上static修饰符呢? 感觉有点多次一举的样子。C#这样设计的原因是什么?
谢谢。
------解决思路----------------------
如果你不加static修饰,编译器怎么知道你是静态方法呢,那样怎么通过 类名.xxx的方法直接访问呢
------解决思路----------------------
楼主的意思是说,既然编译的时候能检测到静态类里不允许有实例方法,那么就直接把实例方法当静态方法编译不就得了,还报错干啥
------解决思路----------------------
我反而认为
抽象类型的方法不必声明为virtual
有违强类型编程语言的原则
容易让人产生误解
------解决思路----------------------
这东西完全是开发者的意图,一些语言就不需要加virtual
------解决思路----------------------
被静态调用的方法必须是有 static 声明,而与类本身是否静态无关
而调用动态方法时,已并不需要一定写 this
我认为这是过渡时期的解决方案,极可能以后的版本就不再区分静态和动态了。
编译器会根据上下文自动做出合理的抉择,这就向自然语言迈近了一步
至少那个 var 声明就很人性的了