接口可以除了可以包括方法外,还可以包括事件,属性,因为他们都会映射为方法!
实际上CLR(公共语言运行时)还允许接口包括静态方法,静态字段,常数,以及静态构造器,这和接口的语义并没有矛盾!
但是CLS(通用语言规范)不允许接口有静态成员,因为某些语言不能定义和访问静态成员,这就给语言之间的交互带来问题!
所以C#编译器不允许接口包括静态成员! 也就是说,其实静态类实现接口并不矛盾,
只是为了实现.NET平台跨语言的能力,所以禁止静态类实现接口
时间: 2024-10-10 18:02:46