[C#] auf statische Eigenschaften zugreifen
-
Hi,
ich hab eine Klasse Base und 2 abgeleitete Klassen Child1 und Child2... Base und Child1 und Child2 (mit new ueberschrieben) haben eine statische Eigenschaft, jetzt hab ich (in einer anderen Klasse) eine Methode:
void test(Base b)
{
//code
}Wie kann ich jetzt auf die statische Eigenschaft von Child1 bzw. Child2 zugreifen? ach ja, Base is abstrakt, dh. b ist immer Child1 oder Child2...
Wie sollte man das am besten machen? 2 Methoden wuerden mir schon einfallen, aber ich kann mir nicht vorstellen, dass man das so machen sollte...
Thx,
Neescher
-
Innerhalb der Klasse ist es der Name des Proberties, von außerhalb musst du Klassenname.Proberty verwenden. Was dein Objekt ist, spielt keine Rolle.
-
Proberty
rofl
-
Hi,
das Problem ist, innerhalb der Methode habe ich nicht den Klassennamen. Ich habe nur die Instanz b, aber ich weiss nicht, welche Klasse das ist, also Child1 oder Child2
Thx,
Neescher
-
Dann musst du das z.B. durch casten oder GetType() herausfinden. Ein sehr viel eleganterer Weg wäre natürlich, eine virtuelle Methode zu schreiben, die dann das richtige zurückgibt.
p schrieb:
Proberty
rofl
Willst du mir vielleicht irgend etwas in einem verständlichen und grammatikalisch korrekten Satz sagen?
-
Ist nicht nötig, du weißt was gemeint ist.
-
Optimizer schrieb:
p schrieb:
Proberty
rofl
Willst du mir vielleicht irgend etwas in einem verständlichen und grammatikalisch korrekten Satz sagen?
Naja, Property mit p halt, aber ich bin auch immer so, solange man versteht um was es geht, sollen kleine Fehler net stören.
Zum Thema: Du meintest du hast ein Property in deinen Child klassen, haben beide denn das gleiche? Dann könntest du das nämlich schon in deine Base Klasse deklarieren, und kannst auch immer von deiner Base aus drauf zugreifen, je nach Childklasse wird ja dann das richtige ausgeführt (hoffentlich
)