Entwickler-Ecke

C# - Die Sprache - Methodenaufruf im Konstruktor


Newbie_2013_ - Sa 16.02.13 14:39
Titel: Methodenaufruf im Konstruktor
Hallo,

habe folgende Vererbungsstruktur: http://s14.directupload.net/file/d/3168/z728hh3j_png.htm

Meine Frage lautet nun: Wieso kann ich im Konstruktor der Klasse InvestmentVariable die Methode aus der Oberklasse aufrufen ohne vorher ein Objekt der Klasse InvestmentVariable erstellt zu haben?

Mit besten Grüßen

Philipp Obergfell


Th69 - Sa 16.02.13 15:38

Hallo und :welcome:

du meinst wohl eher "ohne vorher ein Objekt der Klasse ModelVariable erstellt zu haben"?

Du hast in einer abgeleiteten Klasse automatisch Zugriff auf alle Methoden (und Eigenschaften) der geerbten Klasse, d.h. z.B. einfach

C#-Quelltext
1:
setName("...");                    

Du kannst aber auch explizit mittels des Schlüsselworts base darauf zugreifen:

C#-Quelltext
1:
base.setName("...");                    


P.S. In C# ist es üblich (d.h. entspricht dem Microsoft StyleGuide), daß alle Methoden (und Eigenschaften) mit einem Großbuchstaben anfangen. Die obige Nomenklatur mit get... und set... entspricht mehr dem Java StyleGuide und sollte in C# vermieden werden.


Newbie_2013_ - Sa 16.02.13 15:49

Super, danke dir! Eine Frage habe ich aber trotzdem noch: Normalerweise wird doch in der Parameterliste Typ und Name der Variable genannt. Bei der setName-Methode hier nur der Name. Liegt das daran dass im Konstruktor die Variable schon mit Typ und Namen übergeben wurde? Also "string" und "name".

MfG


Ralf Jansen - Sa 16.02.13 16:01

Wen du dich auf den Codeauszug in deinem Screenshot beziehst dann steht da nur der Variablenname bei der setName Methode weil es der Methodenaufruf ist und nicht die Methodendefinition. Bei der Definition gehört der Typ natürlich dazu.