Cuando se sobrecarga un operador, tales como operator +
, el CIL compilado ve algo como esto:¿Por qué usar el nombre 'op_Addition' para el operador '+' en lugar del nombre '+'?
.method public hidebysig specialname static bool op_Addition(...) { ... }
¿Por qué usar el nombre op_Addition
aquí y no, por ejemplo, el nombre +
?
estoy sugiriendo que la sintaxis CIL debería haber sido
.method public hidebysig specialname static bool +(...) { ... }
Y el nombre del miembro, en la búsqueda de ella, habría sido +
en lugar de op_Addition
.
Nota: esta es una pregunta sobre el diseño del lenguaje; "porque la especificación lo dice" no es una respuesta útil.
"porque la especificación dice ... nvm Supongo que op_Addition es más fácil de analizar que. + – Joe
Quizás podría explicar por qué sugiere que se llame' + 'en su lugar. Simplemente diciendo" debería haber sido '+ '" es tan poco útil como decir "porque la especificación lo dice" – BoltClock
@BoltClock: porque el operador es '+', no 'op_Addition'. Es más natural llamarlo' + '. Sin duda, los diseñadores tenían razones para eso, me pregunto cuáles podrían haber sido estas razones. – configurator