![]() |
Übergeordneten Konstruktor aufrufen
Hallo,
ich habe in C# eine Klasse, die von einer anderer Klasse abgeleitet ist. Nun soll diese Klasse den geerbten Konstruktor aufrufen, wie es mit "inherited Create(...)" in Delphi geht. Wie kann ich das mit C# anstellen? mfG mirage228 P.S.: Wieso können Konstruktoren nicht virtuell sein? :gruebel: Edit: Schlechtschreibung :stupid: |
Re: Übergeordneten Konstruktor aufrufen
Moin,
das zauberwort heisst "Base"...
Delphi-Quellcode:
vom prinzip her.
pblic class bla
{ public bla(int i):base(i) { ...; } } |
Re: Übergeordneten Konstruktor aufrufen
Hi maximov,
Super, das klappt - Danke sehr :) mfG mirage228 |
Re: Übergeordneten Konstruktor aufrufen
Zitat:
du kannst mit this(XXX) einen Kontruktor deiner Klasse aufrufen. Mit base(XXX) einen des Vorgänergs. Sollte eigentlich alles erklären:
Code:
public class Base
{ string name; public string Name { get { return name; } } public Base(string name) { this.name = name; } } public class Descendant :Base { string description; public string Description { get { return description; } set { description = value; } } public Descendant(string name) : base(name) {} public Descendant(string name, string description) : this(name) { this.description = description; } } |
Re: Übergeordneten Konstruktor aufrufen
Hi Robert,
Danke für die Erklärung :) Das ganze heisst aber doch, dass
mfG mirage228 |
Re: Übergeordneten Konstruktor aufrufen
Einen virtuellen Konstruktor kann man in C# mit der Klasse Activator und der Methode CreateInstance emulieren.
Code:
Activator.CreateInstance(Type type,params object[] args);
|
Re: Übergeordneten Konstruktor aufrufen
Nachtrag: Zitat:
|
Re: Übergeordneten Konstruktor aufrufen
Zitat:
Zitat:
Zitat:
mfG mirage228 |
Re: Übergeordneten Konstruktor aufrufen
Zitat:
Zitat:
Activator verwendet Reflection um die passende ConstructorInfo zu finden. Diese wird dann per Invoke aufgerufen -> viel zu langsam für die meisten Aufgaben! |
Re: Übergeordneten Konstruktor aufrufen
Zitat:
Zitat:
mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz