1

C#でカラークラスにメソッドを追加してみる

public static class ColorExtensions 
{
    public static System.Drawing.Color GrayTone(int Darkness)
    {
        return Color.FromArgb(255 - Darkness, 255 - Darkness, 255 - Darkness);
    }
}

しかし、私はそれを次のように使用することはできません

Color MyColor = Color.GrayTone(80);

使用する

public static class ColorExtensions 
{
    public static Color MakeBlack(this Color color)
    {
        return Color.Black;
    }
}
Color Test = Color.Beige.MakeBlack();

動作します。メソッド GrayTone を color クラスに追加するにはどうすればよいですか? 既存の静的クラスに拡張メソッドを追加できますか?を読みました。残念ながら、それを私の状況に翻訳することはできません。

4

1 に答える 1

1

これは拡張メソッドではないため、型名を指定する必要があります。

Color MyColor = ColorExtensions.GrayTone(80);

拡張メソッドを作成するには、クラス名だけでなくColorインスタンスを必要とする のインスタンスを提供する必要があります。既存のクラスに静的メソッドを追加する方法はありません。

于 2013-05-27T17:07:39.263 に答える