C# 'return' Fehlermeldung?

3 Antworten

in der funktion methode() erwähnst du erg aber erg ist dort nicht bekannt.
erg wird in der anderen funktion zwar deklariert aber halt nur da und nicht in methode().

in istgleichclick kann es dir ja passieren das deine if-abfrage false wird.
dann wird der block übersprungen und das ergebnis ist, dass kein return geschieht.
damit hat die funktion den falschen rückgabewert und der pfad hat keinen returnwert.

das lese ich jedenfalls aus den fehlermeldungen raus.


MoinMaiste 
Beitragsersteller
 17.08.2021, 05:30

danke dass hat mir schonmal geholfen, aber gibt es theoretisch eine möglichkeit, erg in einer ander funktion auszuführen?

0
EBoogaloo  17.08.2021, 05:34
@MoinMaiste

also entweder du verbaust irgendwo global ein erg auf das die funktionen dann zugreifen oder da du erg ja eh schon zurückgibts ruf die funktion einfach auf.

also in der zuweisung ergebnis.Content = erg ersetzt du das erg mit dem entsprechenden funktionsaufruf, zum beispiel istgleich_Click(tralalala)

1

Moin,

wie schon gesagt wurde, müssen alle Pfade einer Klasse in einem Return enden (nicht bei void).

In deinem Falle hast du ein if, wenn der falsch ist, gibt es keinen return für die Methode.

Wenn du "erg" woanders verwenden willst, kannst du in der Klasse, außerhalb der Methoden "erg" definieren.

string erg = "";

Dann kannst du anstelle von Return einfach erg = Convert.ToString(a) setzen.

LG

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

Moin,

du musst den Gültigkeitsbereich deiner Variable beachten. Du deklarierst und definierst den String erg in der Methode istgleich_Click nur unter Berücksichtigung der Bedingung in Zeile 199. Das bedeutet, dass auf diese Zeichenkette auch nur innerhalb dieser bedingten Abzweigung zugegriffen werden kann. Ereignet sich der entsprechende Click und triggert die Methode aber das Rechnungszeichen ist ungleich '+', wird der String weder erzeugt noch gibt die Methode etwas zurück. Da allerdings vereinbart wurde, dass sie einen Wert vom Typ string zurückgibt, stellt dies ein Problem dar. Die Methode methode() wird nie auf die Variable zugreifen können. Um dein Problem zu lösen, bietet es sich an, eine globale Variable zu definieren. In etwa so:

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung
 - (Computer, programmieren)