Обычно считается плохой идеей использовать неявные операторы, так как они, в конце концов, неявные и работают за вашей спиной. Отладка кода, заваленного перегрузками операторов, - это кошмар. Тем не менее, что-то вроде этого:
public class Complex
{
public int Real { get; set; }
public int Imaginary { get; set; }
public static implicit operator Complex(int value)
{
Complex x = new Complex();
x.Real = value;
return x;
}
}
вы можете использовать:
Complex complex = 10;
или вы можете перегрузить оператор +
public static Complex operator +(Complex cmp, int value)
{
Complex x = new Complex();
x.Real = cmp.Real + value;
x.Imaginary = cmp.Imaginary;
return x;
}
и используйте код как
complex +=5;