介面上的擴充套件方法

擴充套件方法的一個有用功能是可以為介面建立通用方法。通常,介面不能具有共享實現,但可以使用擴充套件方法。

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,這將對所有孩子以相同的方式實現。