3

私はカスタム構造体に取り組んでおり、別の型から暗黙的に作成できるようにしたいと考えています。

2 つの構造体型があるとします。Color と ColorX。ここで、Color は既にフレームワークに含まれている構造体であり、変更することはできません。

たとえば、暗黙の演算子を使用して言えます。

Color C;
ColorX CX;
CX = new ColorX();
C = CX;

ただし、その逆もできるようにしたいと思います。直接設定するか、キャストすることによって。両方できれば金になる。例えば。

C = new Color();
CX = C;

または次のようにキャストします。

CX = (ColorX)C;

C# の他のすべての便利な演算子を検討してください。これを行う方法があると確信していますが、構文が見つかりません。

どんな助けでも大歓迎です!どうもありがとうございました。

4

2 に答える 2

5

これは、C#の暗黙の演算子で行います。

public static implicit operator ColorX(Color original)
{
     return new ColorX(original);
}
于 2012-12-20T09:55:49.123 に答える
0

関連のない 2 つの型を互いにキャストすることはできません。

拡張 med を作成します

public static class ColorExtensions 
{
   public static ColorX AsColorX(this Color c)
   {
       return new ColorC(c);
   }
}

呼び出すことができる

Color c = new Color();
ColorX cx = c.AsColorX();
于 2012-12-20T09:59:42.037 に答える