C# Taschenrechner Rechenoperatoren?

4 Antworten

Moin,

"ergebnis" ist einfach nicht initialisiert. Weise am besten einfach einen Wert zu.

(Innerhalb der main)

int ergebnis = 0;

Statisch könntest du es auch noch machen, der Fehler bedeutet aber einfach, dass das Programm nicht weiß, was es tun soll, wenn kein Wert in "ergebnis" ist.

Deine Ausgabe passt mit dem Code nicht zusammen.

Das passiert aber, wenn du als String die Integer aneinander anfügst.

LG

//Nachtrag - innerhalb der main, da diese eine statische Methode ist und nicht auf das instanzabhängige ergebnis zugreifen kann.

Von Experte Gaterde bestätigt

Entweder du machst ergebnis statisch (static int ergebnis) oder aber du packst die Variable in die Main Function, welches wohl die beste Variante sein sollte.

Es gibt einen Grund dafür, warum ergebnis rot unterkringelt ist.

Solltest du die Variable später irgendwie anderweitig brauchen in anderen Funktionen, kannst du sie auch schlicht übergeben...

Also entweder

using System;
class Program {
    static int ergebnis;    
	static void Main(string[] args)	{
	    ...

oder

using System;
class Program{
    static void Main(string[] args)	{
	    int ergebnis;
        ...

funktionieren wie gewünscht.


Pushlz 
Beitragsersteller
 29.10.2021, 09:22

Top funktioniert danke!

Ergebnis ist nur int daher eine lokale variable. Pack daher das int ergebnis in die Main Funktion.

Woher ich das weiß:eigene Erfahrung – Bin seit Jahren in dieser Branche tätig

Dultus  29.10.2021, 09:20

Das muss nicht passieren - wir befinden uns in der selben Klasse. Das heißt, die Variable ist auch in der Methode gültig.

Dultus  29.10.2021, 09:26
@Dultus

//EDIT, passt schon. Wenn die Methode statisch ist, können wir natürlich nicht drauf zugreifen.

Alles gut.

Ergebnis ist nicht static, mach das mal static, dann sollte es gehen


Dultus  29.10.2021, 09:18

Bringt nichts. Ergebnis ist einfach nicht initialisiert. ^^

FaTech  29.10.2021, 09:19
@Dultus

Stimmt, das auch noch. Kommt davon wenn man während der Arbeit 'rüber schaut 😅