私が持っているやや単純なラッパークラスに少し問題があります。
次のようになります。
public class Wrapper<T>
{
private T _value;
public Wrapper<T>(T value)
{
_value = value;
}
public static implicit operator Wrapper<T>(T value)
{
return new Wrapper<T>(value);
}
public static implicit operator T(Wrapper<T> value)
{
return value._value;
}
}
T との間の暗黙的なコンバーターをオーバーライドしたので、T 自体のインスタンスのように動作します。
例えば
Wrapper<int> foo = 42;
ただし、2 番目の Wrapper クラスの値のみを割り当てたいので、Wrapper の 1 つのインスタンスを別のインスタンスに割り当てるときに、少し問題があります。
だから今、私はこれをしなければなりません:
Wrapper<int> foo = 42;
Wrapper<int> bar = (int)foo;
または、プロパティを通じて _value を公開します。
ただし、これはライブラリにあり、ユーザーがこれを覚えていることに依存したくないので、代入演算子のオーバーライドを模倣する方法を知っていますか?
ポインターを変更するだけの問題 (クラス インスタンスを別のインスタンスに割り当てるときのように) は、これらの Wrapper オブジェクトへのポインターの辞書を持っているため、辞書が停止するため、それらを常に変更することができないことです。そしたらマッチング。
これがややこしいかどうかはわかります。重要なことを省略している場合は、お気軽にお問い合わせください :-)