, для которого нет неявного преобразования в тип bool. На C# такая программа будет выполняться, только если x и y будут иметь тип bool, но в этом случае, возможно, применение операции присваивания имеет смысл. С типами double корректная программа на C# может быть такой: x =y; b= (y!=0); if(y!=0) z=1; else z = -1; В программе появился лишний оператор, но исчезла двусмысленность, порождаемая операцией присваивания. Специальные случаи присваивания В языке C++ для двух частных случаев присваивания предложен отдельный синтаксис. Язык C# наследовал эти полезные свойства. Для присваиваний вида "x=x+1", в которых переменная увеличивается или уменьшается на единицу, используются специальные префиксные и постфиксные операции "++" и "--". Другой важный частный случай - это присваивания вида: X = X <operator> (expression) Для таких присваиваний используется краткая форма записи: X <operator>= expression В качестве операции разрешается использовать арифметические, логические (побитовые) операции и операции сдвига языка C#. Семантика такого присваивания достаточно очевидна, и я ограничусь простым примером: x += u+v; y /=(u-v); b &= (x<y); Однако и здесь есть один подводный камень, когда x= x+a |