Hallo Tschapajew,
Ich schreibe an einer Engine für Adventure Games und dort
insbesondere an einer Klasse für Räume. Zur zeit ist es so,
dass ein neuer Raum mit
public badezimmer as vbroom
im deklarationsbereich und mit
set badezimmer = new vbroom
badezimmer.setname „badezimmer“
inizialisiert wird.
Ok, das schaut soweit gut aus!
Ich habe in die Klasse vbroom eine setname Metode eingebaut,
die in der Klasse in einer Variable speichert, wie der neue
Raum heißt. Das finde ich aber zu umständlich. Wenn bei der
Instanzierung bereits der Raumname als Objektname mitgegeben
respektive angegeben wird, dann soll die Klasse diese Variable
von allein mit ihrem Objektnamen Füllen. Es ist einfach nicht
praktisch, erst
set badezimmer = new vbroom
und dann zwecks Namensübergabe
badezimmer.setname „Badezimmer“
coden zu müssen.
Ja das ist nun aber mal VB. Konstruktoren die man Überladen kann wie bei NET gibt es leider unter VB bis zur Version 6 leider nicht! Ansonsten waere das kein Thema.
Aber schau einmal.
Klassen kann man wunderbar als Datenspeicher benutzen Wie das geht den Weg hast du ja selbst schon gefunden
ABER normal verwendet man Klassen eigentlich dazu das man Objecte darin verwaltet. In deinem Bsp. waere es ja ein Badezimmer.
Hier lohnt sich eine Klasse nur! wenn es mehrere Baderaeume gibt!
Und genau in dem Falle koennen die Baderaeume unterschiedliche Namen haben. In dem Falle würde sich eine Eigenschaft RaumName anbieten.
Kennst du den Unterschied zwischen Methoden / Ereignissen und Eigenschaften?
Ereignisse werden ausgelöst ( Event)
Methoden erledigen etwas
Eigenschaften ( verwalten Daten)
Im Bsp. Von einer Klasse PKW waere zum Bsp
Gas geben -> Methode
Ereignis -> Temp aendert sich
Eigenschaft -> Farbe Rot
In deinem Falle würde sich daher anbieten eine Eigenschaft zu implementieren. Der Eigenschaft kannst du ja sagen das sie lese und Schreibrechte haben soll
Wie das geht, weisst du?
Aber nochmal zurueck zu deinem Problem.
Wenn die Klasse vbRoom immer den selben Namen traegt, dann kannst du ihr einen StandardWert im Ereignis Class_Initialize zuweisen.
Aber mal was anderes, was mir adhock einfaellt.
Du willst sicherlich mehr wie nur Badezimmer verwalten oder?
Ist es da nicht eine Überlegung wert sich eine Klasse Raum anzulegen und dann noch andere Klassen alla Badezimmer, Wohnzimmer, Schlafzimmer etc. davon abzuleiten?
Ich mein, ein Badezimmer hat zum Bsp. eine Dusche und ein Wohnzimmer dagegen zum Bsp. ein Kamin
MfG Alex