Quando si esegue l'overload di un operatore, come ad esempio operator +
, il CIL compilato simile a questa:Perché utilizzare il nome "op_Addition" per l'operatore "+" anziché il nome "+"?
.method public hidebysig specialname static bool op_Addition(...) { ... }
Perché utilizzare il nome op_Addition
qui e non, per esempio, il nome +
?
sto suggerendo che la sintassi CIL avrebbe dovuto essere
.method public hidebysig specialname static bool +(...) { ... }
E il nome del membro, quando alla ricerca di esso, sarebbe stato +
piuttosto che op_Addition
.
Nota: questa è una domanda sulla progettazione della lingua; "perché le specifiche dicono così" non è una risposta utile.
"perché la specifica dice ... nvm Direi che op_Addition è più semplice da analizzare poi + – Joe
Forse potresti spiegare perché suggerisci che si chiami' + ', semplicemente dicendo" dovrebbe essere stato '+ "è inutile come me dicendo" perché la specifica lo dice " – BoltClock
@BoltClock: perché l'operatore è' + ', non' op_Addition'. È più naturale chiamarlo '+'. Sicuramente, i progettisti avevano ragioni per Mi chiedo solo quali potrebbero essere state queste ragioni: – configurator