接口实际上是一系列实例方法签名的命名集合。接口还可以定义事件,无参属性和有参数性(如C#中的索引器) ,因为这些都可以最终对应于方法。
然而,接口不能定义任何构造方法以及实例字段。同样,尽管CLR允许,C#不允许接口定义静态方法,静态字段,常量以及静态构造函数。
接口可以定义在文件级别,也可以被嵌套定义在其他类型内部。可以定义访问级别为public, protected, internal等。
泛型接口
1) 泛型接口提供了编译时类型安全性
2) 在处理值类型时,装箱次数会少很多
3) 类可以实现同一个接口若干次,只要每次使用不同的类型参数
将泛型类型参数约束为接口
1) 可将一个泛型类型参数约束为多个接口
2) 传递值类型的实例时可以减少装箱操作