私は多少単純なラッパークラスに少し問題があります。代入演算子(=)をオーバーライドするC#模倣
それはこのようなものになります。
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自体のインスタンスのように動作します。
別のラッパーの1つのインスタンスを割り当てるとき、私は唯一の二ラッパークラスの値を割り当てるため、
Wrapper<int> foo = 42;
は、しかし、私は、若干の問題を持っています。
Wrapper<int> foo = 42;
Wrapper<int> bar = (int)foo;
またはプロパティを通じて公的_valueを公開:
だから今、私はこれをしなければなりません。
しかし、これはライブラリにあるので、ユーザーがこれを覚えておく必要はありません。どのように代入演算子をオーバーライドすることができますか?
ポインタを変更するだけで問題になるのは(クラスインスタンスを別のインスタンスに割り当てるときと同じように)、これらのWrapperオブジェクトへのポインタの辞書があるため、すべて変更することはできません辞書はそれから一致を止めるでしょう。
これはやや混乱している場合、私は、あなたが非常にないのNullable <T> ...見れば
これはこれまでに解決されましたか?私は同様の問題を抱えています - 私は基本的な型をラップするものを作成しています。フロートして、MyTypeを実行できるようにしたい< float > a = 1f; a = 2f;新しいインスタンスを作成せずに...参照は実際に魔法によって更新されますか?私は試してみたいと思いますが、それはうまくいっていると確信していません。なぜなら、うまくいくとわかっていれば盲目になるからです。 – jheriko