这可能是一个愚蠢的问题,如果有人可以帮助我理解它,我将不胜感激。
一个接口
C#
可以有静态变量吗?如果接口本身需要静态声明里面的静态变量呢?
当我们在类中实现时,接口中的静态变量(或者说属性)如何实现?
一些例子和明确的解释将不胜感激。
不,C# 中的接口根本不能声明字段。在 C# 中根本不能声明静态接口,也不能在接口中声明静态成员。
根据 C# 规范的第 11.2 节:
接口声明可以声明零个或多个成员。接口的成员必须是方法、属性、事件或索引器。接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型,接口也不能包含任何类型的静态成员。
所有接口成员都隐含地具有公共访问权限。接口成员声明包含任何修饰符是编译时错误。特别是,不能使用修饰符 abstract、public、protected、internal、private、virtual、override 或 static 声明接口成员。
接口是一种契约,即任何实现类必须提供的公共实例方法和属性的描述。
接口不能指定任何静态方法或属性。他们不能指定内部的、受保护的或私有的方法或属性。他们也不能指定字段。
1-不,因为interface
不是一个类
2-考虑一个Abstract
类
3-Static Property
在interface
C# 中没有定义也没有意义