He trabajado con muchos idiomas que no generan una firma de método basada en el tipo de retorno. También he trabajado con uno (¿quizás algunos?) Que sí. Los que no me han dado problemas en el pasado (como aquí ). ¿Por qué los lenguajes de programación generan firmas de métodos sin tener en cuenta el tipo de retorno?
Actualización: me refiero específicamente a los idiomas compilados estáticamente escritos
programming-languages
Charles Lambert
fuente
fuente
Respuestas:
No encajaría bien con la conversión de tipos y las jerarquías de tipos. Si tiene dos versiones de un método, una de las cuales devuelve el tipo A y otra que devuelve el tipo B, tiene problemas cuando:
Podría solucionar esto con los lanzamientos, pero eso requeriría escribir tanto como cambiar el nombre de una de las funciones. También puede registrar un error del compilador cuando la llamada es ambigua, en cuyo caso el usuario debe invertir una cantidad similar de esfuerzo.
fuente
Porque puede llamar a un método y no asignar su resultado.
fuente
Regla general: los lenguajes fuertemente tipados generalmente vinculan la firma del método a un tipo de retorno. Los idiomas débilmente escritos no.
No conozco C #, pero supongo que el problema podría deberse a la forma en que C # maneja los genéricos. Podría estar creando un método totalmente diferente para el genérico, en cuyo caso son realmente dos métodos diferentes.
fuente