Entwickler-Ecke
C# - Die Sprache - Dynamische Objekte
IchKG - So 21.09.08 22:28
Titel: Dynamische Objekte
Hi,
ich programmiere gerade ein Programm, bei dem man Profile mit Einstellungen Erstellen kann und dann auch abrufen kann.
Dazu hab ich eine Klasse "profil" erstellt, in der die einzelnen Variablen deklariert werden.
Danach erstelle ich in der „methode profil_erstellen“ ein Objekt der Klasse und fülle dann die Variablen mit meinen Einstellungen. Nur will ich das der Benutzer den Namen von diesem Objekt eingeben kann, aber wie mach ich das?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| class Program { static void Main(string[] args) { profil_erstellen("home", true, "", "", "", "", ""); }
private static void profil_erstellen(string profilname, bool DHCPon, string DNS1, string DNS2, string ip, string subn, string gateway) { profil profilname = new profil(); profilname.DNS1 = DNS1; profilname.DNS2 = DNS2; profilname.ip = ip; profilname.DHCPon = DHCPon; profilname.gateway = gateway; profilname.subn = subn; } } class profil { public bool DHCPon; public string DNS1; public string DNS2; public string ip; public string subn; public string gateway; } |
In diesem Code versuche ich das Objekt zu erstellen. Der Name des Objektes soll aus der Variable "profilname" eingelesen werden, aber das funktioniert nicht nur habe ich keine Ahnung wie ich so etwas machen soll. Gibt es da dann einen anderen Syntax um das Objekt zu erstellen oder funktioniert das garnicht?
mfG
IchKG
Christian S. - So 21.09.08 23:02
Hallo und :welcome:!
Wir sind was korrekte Rechtschreibung angeht hier wirklich nicht pingelig, aber könntest Du Deinen Beitrag editieren und ein paar Satzzeichen einfügen? Der Beitrag ist wirklich schwer lesbar, wenn man nicht weiß, wo ein (Neben)satz aufhört und der nächste anfängt.
Einfach oben bei Deinem ersten Beitrag auf

oder

klicken, um den Beitrag zu ändern! Danke! :-)
Grüße
Christian
IchKG - So 21.09.08 23:08
Ist es jetzt lesbar?
Christian S. - So 21.09.08 23:21
Ja, so ist es gut :zustimm:
Du kannst in C#, da es keine Skriptsprache ist, Variablennamen nicht in dieser Art dynamisch vergeben. Was Du aber machen kannst, ist, ein Dictionary<string, profil> zu benutzen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| class Program { Dictionary<string, profil> profile = new Dictionary<string, profil>();
private static void profil_erstellen(string profilname, bool DHCPon, string DNS1, string DNS2, string ip, string subn, string gateway) { if (profile.ContainsKey(profilname)) raise new ArgumentException("Profile-Name bereits vergeben", "profilname"); else profile[profilname] = new profil();
profile[profilname].DNS1 = DNS1; profile[profilname].DNS2 = DNS2; profile[profilname].ip = ip; profile[profilname].DHCPon = DHCPon; profile[profilname].gateway = gateway; profile[profilname].subn = subn; } |
Ich hab's nur hier ins Forum geschrieben, kleine Fehler können also noch drin sein ;-)
Hinweis zum Schluß: Konvetion ist es, dass man Klassennamen groß schreibt, also
Profil.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!