暗黙のキャストをintからA
にオーバーロードすると、操作の左側のインスタンスを取得する方法はありますか?暗黙的なキャスト演算子の左側の参照
:
public class A
{
int myInt;
public static implicit operator A(int x)
{
a.myInt = x;
}
}
、その後
A myA = new A();
myA = 2;
myA.myInt
が2
あるように、私は、インターネット上で検索が、私はこの正確な問題に対する答えを見つけることができませんでした。静的関数なので可能ではないと思うし、関数に2つのパラメーターを入れようとするとエラーになる。また、NULL変数でこれをやろうとするとエラーが発生することがあります(このように宣言した場合はA myA;
)。しかし、あなたは構造体でそれを行うことができます(なぜなら、構造体がnullになることができないこと、またはnullを割り当てることができないことを知っているからです)。
私はこの仕事のようなものを作るためにできる何らかの魔法があるかどうか疑問に思っています。
それは私が行うときに "" 'MyDestType'への参照があるはずです(MyDestType)' myExpr'言うようなものです。しかし、キャストが発生する前にno__'MyDestType'があります。変換演算子の本体では、まずインスタンスをローカル変数として作成します。その後、必要に応じて修正することができます。最後にそれを返します。あなたが上に持っているものは、法的なC#ではありません。 –
=演算子をオーバーロードするとどうなりますか?操作の左側を参照する方法はありますか? – ItsaMeTuni
@ItsaMeTuniその演算子をオーバーロードすることはできません。 – Servy