接口上的扩展方法

扩展方法的一个有用功能是可以为接口创建通用方法。通常,接口不能具有共享实现,但可以使用扩展方法。

public interface IVehicle
{
    int MilesDriven { get; set; }
}

public static class Extensions
{
    public static int FeetDriven(this IVehicle vehicle)
    {
        return vehicle.MilesDriven * 5028;
    }
}

在此示例中,方法 FeetDriven 可用于任何 IVehicle。这种方法中的逻辑适用于所有的 IVehicles,因此可以这样做,这样就不必在 IVehicle 定义中使用 FeetDriven,这将对所有孩子以相同的方式实现。