Wenn man in C# einen Operator überlädt, kann man ja den Rückgabewert ändern. Also den Typ. Von bool zu int oder so. Warum funktioniert das für Operatoren und nicht für normale Methoden? Ich dachte immer, Operatoren sind einfach nur statische Methoden mit einem speziellen Namen? Aber normale Methoden kann ich zwar überladen, aber nicht nur den Rückgabetyp ändern – warum?
Was meinst du mit Rückgabetyp ändern? Also ich hab Probleme mit dem Verständnis deiner Frage. Ich würde mich auch erst ma pauschal dem Standpunkt anschließen, dass das, was in Operator "kann", eine Methode auch kann.
Die Ausführung waren mehr als Erweiterung und Erklärung zu dem Stackoverflow-Artikel den ralf gepostet hat gedacht, da dieser bereits sehr gut erklärt warum es überhaupt (nur) bei Operanten geht.
Hi, wenn Du meinst, dass du eine Methode dadurch überladen kannst, indem du die Aufrufsignatur beibehältst und sich die Methoden nur anhand des Rückgabewertes unterscheiden, dann geht das mit C# nicht. Es wird nicht untersützt. Lustigerweise ist es aber direkt in IL möglich. Und weils mich jetzt selbst interessiert hat, warum das von C# nicht unerstützt wird, habe ich den recht gut erklärenden StackOverFlow Artikel gefunden. Grüße Ralf