接口是表示一组函数成员,而不实现成员的引用类型。类和结构可以实现接口。
例如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);
}
实现接口:
只有类和结构才能实现接口,要实现接口,类或结果必须:
- 在基类列表中包括接口实现。
- 为每一个接口的成员提供实现。