¿Por qué no se pueden declarar dos métodos con la misma firma a pesar de que sus tipos de retorno son diferentes? [duplicar

Duplica: ¿Sobrecarga de funciones por tipo de retorno?

Tal vez esta es una pregunta muy tonta, pero no entiendo por qué no puedo declarar dos métodos que tienen la misma firma cuando tienen diferentes tipos de retorno.

public class MyClass
{
    private double d = 0;

    public double MyMethod()
    {
        return d;
    }

    public string MyMethod()
    {
        return d.ToString();
    }
}

Obtengo un error de compilación que indica que la clase ya define un miembro con los mismos tipos de parámetros.

(Obviamente, la forma en que estoy usando esto en mi código no es tan simple como mi código de ejemplo ... pero creo que transmite la idea).

¿Me estoy perdiendo algo relacionado con el diseño OO que hace que lo que estoy tratando de hacer sea un antipatrón OOP? Seguramente el compilador debería poder determinar qué método estoy tratando de usar siempre que le diga específicamente cuál quiero.

DadoMyClass myClass = new MyClass(); Esperaría que el siguiente código funcione:

double d = myClass.MyMethod();
string s = myClass.MyMethod();

Esperaría que el siguiente código tenga problemas:

var v = myClass.MyMethod();

Pero incluso en el caso devar debería provocar un error de compilación.

¿Alguien puede ver lo que estoy haciendo mal aquí? Estoy más que feliz de ser corregido. : -)

Respuestas a la pregunta(5)

Su respuesta a la pregunta