Sovraccarico e precedenza dell’operatore

In C # è ansible sovraccaricare gli operatori, ad esempio + e * . Nella loro interpretazione matematica, questi operatori hanno un ordine di precedenza ben definito.

Questo ordine viene mantenuto durante il sovraccarico, cambia in qualche modo deterministico o è ansible sovraccaricare anche l’ordine di precedenza?

Se sovraccarichi un operatore, avrà sempre la precedenza rispetto all’implementazione predefinita. Tuttavia, non è ansible modificare la precedenza dell’operatore stesso, quindi verrà mantenuto come predefinito. Ulteriori informazioni su MSDN .

Citazioni pertinenti:

Le implementazioni operatore definite dall’utente hanno sempre la precedenza sulle implementazioni predefinite degli operatori: solo quando non esistono implementazioni operatore definite dall’utente applicabili verranno prese in considerazione le implementazioni operatore predefinite.

e

Le dichiarazioni degli operatori definite dall’utente non possono modificare la syntax, la precedenza o l’associatività di un operatore. Ad esempio, l’operatore / è sempre un operatore binario, ha sempre il livello di precedenza specificato nella Sezione 7.2.1 ed è sempre associato a sinistra.

Il sovraccarico non cambia la precedenza.

La precedenza dell’operatore è impostata dal compilatore e non può essere modificata, almeno non senza la personalizzazione del compilatore.