оператор.
жный дубликат:
Простой способ перегрузки составного оператора присваивания в C #?
Я играл с событиями и думал, что события странные. Почему я не могу просто реализовать их в общем классе. Поэтому я попытался и обнаружил, что я не могу перегрузить + =.Из спецификаций языка, найденных здесь
The overloadable unary operators are:
+ - ! ~ ++ -- true false
The overloadable binary operators are:
+ - * / % & | ^ << >> == != > < >= <=
+ = не указан. Теперь, прежде чем вы скажете, что нет причин для перегрузки + =, я хотел бы упомянуть тот факт, что в C # есть события, которые используют оператор + =, и тот факт, что я пытался реализовать событие для развлечения и хотел использовать оператор + =. Теперь у меня есть чувство, что кто-то скажет, поэтому существуют события, потому что это единственная причина. Однако я хочу поднять, вы можете использовать + = со структурой TimeSpan. Иди попробуй,var ts= new TimeSpan(); ts += ts;
скомпилирует и запустит.
Я посмотрел на определение TimeSpan, и я понятия не имею, как это позволяет. я увиделpublic static TimeSpan operator +(TimeSpan t);
который выглядел подозрительно, но потом я понимаю, что-то вродеvar name = +ts;
например, как вы можете сделатьvar name = -ts;
для отрицания.
Итак, мой вопрос, как я могу использовать + = для моей структуры или класса. Кажется, что он поддерживается, я просто не могу найти документацию по нему.