Ohne eine spezifikation kann man nicht viel machen weil auch fuer ein Taschenrechner sehr viele Fragen aufkommen, wie z.b. die Input Notation
(ie. 1 2 + oder 1 + 2 oder + 1 2 etc)
zu dem Code was du gepostet hast:
meiner Meinung nach sollte man den default zweig des switches NUR fuer eine Fehlermeldung verwenden. Fuer das was du machst gibt es denn '?' case, ich weis jezt nicht genau ob das in C# auf drin ist aber sollte sein. Das ? heist einfach das alle anderen characters in diesen Case fallen, was auch eine zahl waere.
Die negativ ueberpruefung:
der User Input erfolg mittels der Konsole also kommt es ueber einen String zu deinem Programm. Daher wird ein char array verwendet. Jede zahl wird in einezelen zahlen gegliedert z.B. 999 wird als '9' '9' '9' in je einem Index gespeichert.
das oben angegebene code stueck zeigt dir warum
while (temp == '-')
{
isNegative = !isNegative;
count++;
if (count < input.Length)
temp = input[count];
else
break;
}
ausgefuehrt wird, eben wegen diesen mehrfachen '-'. Sobald dieses '-' nicht mehr auftritt bleibt der nicht '-' char in temp gespeichert und die boolean variable isNegativ ist entweder true oder false, true bei ungerader Anzahl an '-' chars und anders false.
Das potenz Zeichen ist '^'. Die Funktion sollte so aussehen wie du sie hast. Das mit dem Punkt vor Strich Rechnung wuerde dann vieleicht so aussehen das man zwei schleifen hat mit je einem switch. Einmal fuer + und - und dann einmal fuer * und /
Die Prioritaet fuer den Potenz Operator ist das wirklich entscheidende an diesem Beispiel, sonst waere es ja viel zu einfach fuer eine Bewerbung. Ein Ansatz waere den input String durchzulaufen und dir den Index von drei Operatoren zu merken, das heist du brauchst einem int array [3]. Du gehst den input String durch und speicherst in [0] den Index eines Operators in der folgenden Enumeration {'-','+','/','*'}. Sollten nun ein '^' char im input String sein sollte dieser Index in [1] gespeichert werden. Dann geht es weiter bis man den naechsten Operator erreicht und speichert dessen index in [2]. Zwischen diesen drei Indecies sind jetzt deine zwei Zahlen fuer die Potenz Rechnung.
Jetzt schneidest du Teilstrings ab, und zwar von inputString[0] bis inputString[[0]], das heist alles inlusieve des ersten operators. Ein zweiter Teilstring ist dann inputString[[2]] bis inputString[inputString.length()]. Also alles von dem dritten operator bis zum ende. Jetzt hast du in inputString nur noch deine zahlen und den potenz Operator. Nach erfolgreichem rechnen muss man das ergebnis der Potenz rechnung mit den Teilstring wieder zusammen schneiden.
Also in ungefaehr so: teilstring1 + ergebnis + teilstring2. Natuerlich muesste das ganze in einer schleife durchlaufen werden weil es mehrere potenz Operatoren geben koennte.
Dies ist jetzt nur so schnell hingetippt und ich weis den genauen C# code nicht und ich weis auch nicht ob es die beste Loesung ist, wahrscheinlich nicht. Ich hoffe ich habe jetzt nicht zu viel geholfen da dies ein Bewerbungsbeispiel ist.