C# Interfaces

interface 定义一个约定,然后由 class/struct 具体实现。

interface 的成员:

接口不是类,不能实例化,只可继承,并且必须实现接口的成员。

class/struct 可以直接继承多个 interface。它们的实例可以隐式转换为 interface type。

代码规范:

public class EditBox: IControl, IDataBound
{
    // IControl.Paint
    public void Paint() { }

    // explicit interface member implementation,可以避免使用 public
    // 不过实例不能使用,转为 interface type 之后可以使用
    void IDataBound.Bind(Binder b) { }
}

Indexers

Indexers in Interfaces (C# Programming Guide)