Ich erstelle ein Spiel in C# Windows Form und ich werde 9 verschiedene Charaktere innerhalb des Spiels für meinen Spieler zur Auswahl haben (mit Radio-Buttons). Ich habe eine Variable namens PlayerChar und wenn der Spieler einen Charakter auswählt, werde ich den Namen des Charakters in dieser Variable speichern. Außerdem habe ich 9 verschiedene Klassen für jeden Charakter. Was ich versuche, ist, das Programm dazu zu bringen, ein Objekt aus der Klasse des gewählten Charakters zu erstellen. aber ich weiß nicht, wie man variable PlayerChar als meinen Klassennamen benutzt.Wie erstellt man ein Objekt mit einer Variablen als Klassennamen?
PlayerChar obj = new PlayerChar();
Dies ist im Grunde, was ich versuche zu tun. Auch habe ich versucht Activator.CreateInstance mit:
PlayerChar myObj = Activator.CreateInstance(PlayerChar);
https://ericlippert.com/2015/04/27/wizards-and-warriors-part-one/ – pinkfloydx33
@ pinkfloydx33 Das Beispiel In diesem Blog sehe ich ein schlechtes Beispiel. Es stellt das Problem als eine Art großes Design-Problem dar, aber dieses Problem lässt sich leicht mit einer abstrakten Methode "bool EquipWeapon" (Waffenwaffe) lösen, die überprüft, ob die Waffe ausgerüstet werden kann, bevor sie dem Waffenfeld zugewiesen wird. – Abion47
Ich bin mir nicht sicher über Ihre letzte Aussage. Eine Menge Code verwendet Aktivator (wahrscheinlich ohne dass der Entwickler dies bemerkt) Generische Klassen mit einer 'new()' - Einschränkung gefolgt von 'new T()' werden durch den Compiler mit einem Aufruf von 'Activator.CreateInstance' ersetzt. Sehen Sie den Abschnitt Bemerkungen hier https://msdn.microsoft.com/en-us/library/0hcyx2kd(v=vs.110).aspx –
pinkfloydx33