2011-09-15 17 views
2

最近、C#で暗黙の演算子のオーバーロードの驚異を発見しました。双方向の暗黙的な演算子オーバーロードのパターンとインターフェイスの名前

public static implicit operator FooType(int num) 
{ 
    return new FooType(num); 
} 

public static implicit operator int(FooType fooType) 
{ 
    return fooType.IntValue; 
} 
  1. そのデザインパターンの名前があります:私はあなたのような暗黙の演算子オーバーロードの両方の「やり方」を、持っている場合は、不思議でしたか?
  2. あらかじめ定義された.NETインターフェイス、たとえばICastable<int>がありますか?

答えて

2
  1. それは私がそれを聞いたことがないされている場合は
  2. 演算子は、静的な構造であり、コンパイル時に解決されています。彼らは、私の知ることを任意のインターフェイス
+0

ないDIS @Ericに、しかし、あなたの答えは少し最初に来て、あなたが許可されていない静の中に私をcluedインタフェース用。あなたのおかげです。 – MPelletier

6
  1. ないの一部にすることはできません。

  2. IConvertibleの実装を検討するとよいでしょう。 (あなたのクラスはまたは、物事へを比較することができた場合、あなたはIComparable<T>の実装を検討することがあります。)