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

Lea*_*ner 6 .net c# oop interface c#-4.0

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

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

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

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

一些例子和明显的解释将不胜感激.

Jon*_*eet 17

不,C#中的接口根本不能声明字段.您不能在C#中声明静态接口,也不能在接口中声明静态成员.

根据C#规范的第11.2节:

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

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

  • 有 - 您可以使用非泛型接口作为通用接口的标记,方法是使通用实现非泛型.在这种情况下,标记接口不需要任何成员,可能还有其他用途,但标记接口在反射场景中很有用 (6认同)
  • @Alireza [是](http://msdn.microsoft.com/en-us/library/system.web.sessionstate.irequiressessionstate.aspx). (2认同)