接口是否可以在C#中使用静态变量

时间:2013-10-21 13:40:00

标签: c# .net oop c#-4.0 interface

这可能是一个愚蠢的问题,如果有人能帮助我理解,我感激不尽。

  1. C#中的接口可以有静态变量吗?

  2. 如果接口本身需要静态来声明里面的静态变量?

  3. 当我们在一个类中实现时,接口中的静态变量(或者说属性)的实现如何?

  4. 非常感谢一些例子和明显的解释。

3 个答案:

答案 0 :(得分:17)

不,C#中的界面根本无法声明字段。你不能在C#中声明一个静态接口,也不能在接口中声明静态成员。

根据C#规范的第11.2节:

  

接口声明可以声明零个或多个成员。接口的成员必须是方法,属性,事件或索引器。接口不能包含常量,字段,运算符,实例构造函数,析构函数或类型,接口也不能包含任何类型的静态成员。

     

所有接口成员都隐式拥有公共访问权限。接口成员声明包含任何修饰符是编译时错误。特别是,不能使用abstract,public,protected,internal,private,virtual,override或static修饰符声明接口成员。

答案 1 :(得分:2)

接口是一个契约,即任何实现类必须提供的公共实例方法和属性的描述。

接口不能指定任何静态方法或属性。它们不能指定内部,受保护或私有方法或属性。他们也不能指定字段。

答案 2 :(得分:-3)

1-不,因为interface不是班级

2-考虑Abstract

1 Static Property中的interface未在C#

中定义,也没有意义