en double: Function overloading by return type?Pourquoi deux méthodes ne peuvent-elles pas être déclarées avec la même signature même si leurs types de retour sont différents?
Peut-être que cela est une question très stupide, mais je ne comprends pas pourquoi je ne peux pas déclarer deux méthodes qui ont la même signature quand ils ont différents types de retour. Je reçois une erreur de compilation qui indique que la classe définit déjà un membre avec les mêmes types de paramètres.
(Il est évident que la façon dont je me sers dans mon code n'est pas aussi simple que mon code exemple ... mais je pense qu'il a l'idée à travers.)
Suis-je manque quelque chose au sujet de la conception OO que fait ce que j'essaie de faire un anti-pattern OOP? Sûrement le compilateur devrait être en mesure de déterminer quelle méthode j'essaie d'utiliser tant que je lui dis spécifiquement lequel je veux.
Compte tenu MyClass myClass = new MyClass();
je me attendrais le code suivant au travail:
double d = myClass.MyMethod();
string s = myClass.MyMethod();
je me attendrais le code suivant pour avoir des problèmes:
var v = myClass.MyMethod();
Mais même dans le cas de var
devrait entraîner une erreur de compilation.
Quelqu'un peut-il voir ce que je fais mal ici? Je suis plus qu'heureux d'être corrigé. :-)
Merci Greg! Je n'avais aucune idée que c'était une question en double. J'ai fait des recherches avant de demander ... mais je suppose que je n'utilisais pas la bonne terminologie. – mezoid
Pas de soucis, la question à laquelle je suis lié a de très bonnes réponses. (Le mien est médiocre.) –
Ouais, j'ai lu à travers eux et ils ont définitivement répondu à ma question. Cela ne me dérange pas si cette question est fermée ... mais ce serait bien si elle n'a pas été supprimée de sorte que si la prochaine personne à avoir cette question ne sait pas sa cause "surcharge de fonction par type de retour" ils peuvent trouve toujours une réponse. – mezoid