Я правильно поняла, что в C# нельзя перегруженные операторы сделать виртуальными? (В С++ можно было). Это во-первых.
Нельзя.
Можно сдалать виртуальную функцию и использовать ее в операторе.
И во-вторых, перегрузка оператора инкремента(декремента) в префексной и постфиксной формах возможна в С#? Или только один вариант?
C# specification говорит следующее:
Цитата:
An operator ++ or operator -- implementation can be invoked using either postfix or prefix notation.
It is not possible to have separate operator implementations for the two notations.
То есть оператор ++ или -- изменяет объект, а что он будет возвращать, решается на основании того, префиксно он вызывается или постфиксно: если используется префиксная нотация, то возвращается значение, возвращаемое оператором, если постфиксная - то исходное значение объекта.