Ein Vorteil wäre ja den Anfängern wenigstens hier nicht immer C++ vorzuschlagen. Allein die Probleme die man da am Anfang so meisten muss. Die beiden Topics zu den Büchern zeigen das ja schon ganz gut. Bibliotheken einbinden, Zeichensätze anpassen, kompilieren, das alles bringt schon Hürden mit, die ein Anfänger normal nicht braucht. Vor allem wenn sein einziges Ziel es ist, ein Spiel zu entwickeln Und oft kommt das Argument, wenn du alles bis ins kleinste Detail kontrollieren und verstehen möchtest, dann nimm C++ und wenn du nur schnell mal ein Spiel bauen willst, dann nimm was anderes. Nun das gibt unterschwellig wieder die Meinung mit, wenn du es richtig machen willst nimm C++ und alles andere ist halt der Weg für die Faulen. Da hätte ich mit 14 vermutlich allein aus falschem Stolz schon zu C++ gegriffen, obwohl ich nicht gewusst/verstanden hätte, welchen Vorteil/Nachteil ich dadurch habe. Den kann man halt an diesem Punkt auch noch nicht verstehen.
Dann ist das mit den statischen und globalen Variablen natürlich mist. Wenn ihm nun aber vorgeschlagen wird statische Variablen zu benutzen, dann ist das halt ne schwere Sache. Natürlich hat er indirekt danach gefragt, aber man könnte ja jetzt erklären, dass man das sehr gut durch Code Design lösen kann. Dann könnte man vielleicht ein kleines Beispiel machen und alles ist gut.
Dann gibt es da aber noch einen Punkt. Warum wird immer noch so oft WinForms benutzt? Ist das aus Faulheit sich mal WPF anzugucken? Gut als Anfänger hört man vielleicht was von Forms und denkt dann, dass ist der richtige Projekttyp. Unter WPF kann man sich da ja erst mal wenig vorstellen. Aber nicht nur Anfänger machen diesen "Fehler". Man sieht so oft von allen möglichen Menschen irgendwelche Formsanwendungen. WPF hat extrem viele Vorteile und Forms haben sicherlich ihre Projekte, in denen sie verwendet werden müssen, aber meistens geschieht das vermutlich nicht aus diesen.
Also halten wir doch mal fest. An sich solltest du bei sowas C# mit WPF verwenden, dir für den Einstieg vielleicht besser ein Buch kaufen, oder wenigstens ein Onlinebuch lesen. Galileocomputing hat da zum Beispiel was im Angebot. Dein Problem mit den Variablen ist nichts was man mit static lösen sollte. Das kann zu einigen Problemen führen, weshalb du es dir gar nicht erst angewöhnen solltest. Wenn du Werte zwischen Klassen austauschen möchtest, dann kannst du dein Programm so strukturieren, dass die Klassen über Methoden miteinander kommunizieren können. Wenn du Werte zwischen Fenstern austauschen möchtest, dann kannst du dafür gegebene Funktionen verwenden. Dafür kannst du einfach mal bei Google gucken. Aber auch hier kann man sehr viel mit Codedesign arbeiten. Wenn man sich vorher richtig Gedanken macht und natürlich auch Erfahrung hat, ist es gar nicht so schwer den Code so zu strukturieren.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“