接口可以除了可以包括方法外,还可以包括事件,属性,因为他们都会映射为方法!
实际上CLR(公共语言运行时)还允许接口包括静态方法,静态字段,常数,以及静态构造器,这和接口的语义并没有矛盾!
但是CLS(通用语言规范)不允许接口有静态成员,因为某些语言不能定义和访问静态成员,这就给语言之间的交互带来问题!
所以C#编译器不允许接口包括静态成员! 也就是说,其实静态类实现接口并不矛盾,
只是为了实现.NET平台跨语言的能力,所以禁止静态类实现接口
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步