接口是表示一组函数成员,而不实现成员的引用类型。类和结构可以实现接口。
例如BCL声明了一个叫做IComparable的接口,包含了一个CompareTo方法, 但没有实现其方法,用“;”结尾。
public interface IComparable { int CompareTo(Object obj); }
使用IComparable 接口:
class MyClass : IComparable { public int value; public int CompareTo(object obj) // 引用方法的实现 { MyClass mc = (MyClass)obj; if ( this.value < mc.value) { return -1; } else { return 0; } }
声明接口:
接口声明不不包含数据成员,只能包含如下类型的静态成员函数的声明:
- 方法
- 属性
- 事件
- 索引
接口声明 和 接口成员的访问有重要区别:
- 接口的声明是可以有任何的访问修饰符public, protected, internal 或 private.
- 接口的成员是隐式pulblic的,不允许有任何访问修饰符.
public interface IMyInterface { int Method(int parameter); }
实现接口:
只有类和结构才能实现接口,要实现接口,类或结果必须:
- 在基类列表中包括接口实现。
- 为每一个接口的成员提供实现。