Компилятор должен перевести этот код: < /p>
public static explicit operator Int64(MyNumber n)
{
return n.ToInteger();
}
public static explicit operator Double(MyNumber n)
{
return n.ToDouble();
}
< /code>
до двух методов, которые имеют одинаковое имя и подпись, но отличаются только по их возвращению, например, < /p>
public static Int64 ExplicitCast(MyNumber n)
...
public static Double ExplicitCast(MyNumber n)
...
< /code>
Однако нам не разрешено иметь методы, которые отличаются только по их возвращению. Что происходит за шторами?
Подробнее здесь: https://stackoverflow.com/questions/358 ... -operators