コンテキストのためのいくつかのコード:C#の暗黙の変換と==演算子
class a
{
}
class b
{
public a a{get;set;}
public static implicit operator a(b b)
{
return b.a;
}
}
a a=null;
b b=null;
a = b;
//compiler: cannot apply operator '==' to operands of type tralala...
bool c = a == b;
1が暗黙のうちに別のものに変換することができます異なるタイプのインスタンスに==演算子を使用することが可能ですか?私は何を取りこぼしたか?
編集:
種類が同じ呼び出し==、なぜ
int a=1;
double b=1;
bool c=a==b;
作品でなければなりませんか?
値型で参照型ではないため、int/doubleの例が動作すると仮定します... –
これは理由があります。問題がある場合は、参照型が値型と同様に暗黙的に変換を実行できない理由を説明しません。 –