Некоторый код для контекста:
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;
Можно ли использовать оператор == для экземпляров разных типов, где один может неявно преобразовываться в другой? Что я пропустил?
Редактировать:
Если типы должны быть одинаковыми, вызывающими ==, то почему
int a=1;
double b=1;
bool c=a==b;
работает?