7

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

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

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

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

一些例子和明确的解释将不胜感激。

4

3 回答 3

18

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

根据 C# 规范的第 11.2 节:

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

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

于 2013-10-21T13:41:09.403 回答
2

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

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

于 2013-10-21T13:43:16.527 回答
-3

1-不,因为interface不是一个类

2-考虑一个Abstract

3-Static PropertyinterfaceC# 中没有定义也没有意义

于 2013-10-21T13:42:34.687 回答