Por que não consigo sobrecarregar o operador + = em c #? Mas ainda posso usá-lo? [duplicado]

Possível duplicado:
Maneira simples de sobrecarregar o operador de atribuição composta em C #?

Eu estava brincando com eventos e achava que os eventos eram estranhos. Por que eu não poderia simplesmente implementá-los em uma classe genérica. Então eu tentei e descobri que eu não posso sobrecarregar + =.A partir das especificações de idioma encontradas aqui

The overloadable unary operators are:    
+   -   !   ~   ++   --   true   false

The overloadable binary operators are:    
+   -   *   /   %   &   |   ^   <<   >>   ==   !=   >   <   >=   <=

+ = não está listado. Agora, antes que você diga que não há razão para sobrecarregar + = eu gostaria de mostrar o fato de que o C # possui eventos que usam o operador + = e o fato de eu tentar implementar um evento por diversão e querer usar o operador + =. Agora, tenho a sensação de que alguém dirá que é por isso que os eventos existem, porque é a única razão. No entanto, eu quero trazer à tona você pode usar + = com a estrutura TimeSpan. Vá tentar,var ts= new TimeSpan(); ts += ts; irá compilar e executar.

Eu olhei para a definição de TimeSpan e não tenho idéia de como está permitindo isso. eu vi umpublic static TimeSpan operator +(TimeSpan t); que parecia suspeito, mas então percebo que é algo comovar name = +ts; como você pode fazervar name = -ts; por negação.

Então, minha pergunta é: como eu uso o + = para minha estrutura ou classe. Parece ser suportado, simplesmente não consigo encontrar a documentação.

questionAnswers(4)

yourAnswerToTheQuestion