Konsolenanwendung C# Verbesserungsvorschläge?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hier:

SchereSteinPapier2 - Pastebin.com

Mit ein paar Kommentaren dabei

Ach und achte auf Code-Guidelines, Microsoft bietet da selber Artikel für an und der Großteil der Community hält sich daran.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Schau dir mal switch case an. Das würde meiner Meinung nach mehr sinn machen statt if Anfragen. Aber da du if benutzt hast, schau dir auch mal else if und else an. Ich würde dafür switch case benutzen, dennoch schau dir auch else if und else an.

MoechtegernCode 
Fragesteller
 06.09.2021, 14:44

Danke für deine Antwort! Werde mich auf alle Fälle da mal reinlesen

0
MoechtegernCode 
Fragesteller
 06.09.2021, 14:46

Das mit if else fällt mir gerade auch auf mit switch case habe ich bisher noch keine Erfahrung, werde mich jedoch demnächst einlesen danke für deine Antwort

0
  • Wenn acceptment == "JA" ist, weißt du ja bereits, dass acceptment weder "NEIN" noch irgendetwas anderes sein kann. Trotzdem werden diese Dinge später abgefragt, was nicht optimal ist. Dies kannst du beheben, indem du aus den anderen beiden ifs jeweils else ifs machst (das letzte else if könntest du sogar gegen ein else ersetzen). Da du allerdings jeweils auf acceptment prüfst, würde sich hier ein switch besser eignen.
  • Du könntest drüber nachdenken, den User auch Zahlen eingeben zu lassen statt der Strings "Stein", "Schere" und "Papier". Dann könntest du mithilfe von Arithmetik ermitteln, wer gewonnen hat. Dies könnte z.B. in der Konsole so aussehen:
Bitte geben Sie die Nummer Ihrer Waffe ein:
1 -> Schere
2 -> Stein
3 -> Papier
  • Selbst wenn du bei den strings bleibst, solltest du auch beim Abfragen des decisionCheck dringend auf ein switch bzw wenigstens else if wechseln, da sonst sehr viele string-Vergleiche stattfinden, was relativ langsam ist.
  • Es ergibt wenig Sinn, "while (gameFinish == false)" auszuschreiben, da gameFinish selbst bereits ein Wahrheitswert ist, den man abfragen kann. Schreib stattdessen "while(!gameFinish)".
MoechtegernCode 
Fragesteller
 06.09.2021, 14:47

Wow! Wirklich vielen Dank für diesen sehr ausführlichen Kommentar werde ihn mir in Ruhe anschauen und darauf meinen Code optimieren

0