AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[C#] Geerbten Konstruktor aufrufen

Ein Thema von xZise · begonnen am 24. Aug 2009 · letzter Beitrag vom 24. Aug 2009
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:31
Hallo ihr,
ich versuche gerade ein kleines Programm mal in C# zu schreiben

Nun bin ich schon ziemlich weit aber ich hänge gerade an einer Stelle. Und zwar brauche ich einen TreeNode der mir auch ein Objekt speichert. Zuerst hatte ich da an .Data aus Delphi gedacht, aber so was scheint da nicht zu geben. Und dann ist mir die Idee gekommen einfach eine Klasse davon abzuleiten. Gesagt getan:
Code:
class TreeNodePlus : TreeNode
{
    private DfmEntry FEntry;

    public DfmEntry GetEntry()
    {
        return FEntry;
    }
    public void SetEntry(DfmEntry Value)
    {
         FEntry = Value;
    }
}
Und jetzt will ich diese Klasse verwenden:
Code:
foreach (FileInfo DfmFile in dir.GetFiles("*.dfm"))
{
     TreeNodePlus tn = new TreeNodePlus(DfmFile.Name);
     tn.Checked = true;
     DfmEntry entry = new DfmEntry(DfmFile.FullName);
     tn.SetEntry(entry);

     Root.Add(tn);
     FileCnt++;
}
Aber jetzt meckert er rum:
Zitat:
Fehler 1 "WindowsFormsApplication1.TreeNodePlus" enthält keinen Konstruktor, der 1-Argumente akzeptiert. C:\Users\xzise\Documents\Visual Studio 2008\Projects\DfmErase\DfmErase\Form1.cs 70 35 DfmErase
Nun wie kann ich ihm jetzt sagen, dass das stimmt, aber er den Konstruktor der alten Klasse aufrufen soll. Ich meine ich muss doch wohl nicht jeden Konstruktor neu definieren (nagut ich benutze nur ein. Aber das heißt ja nicht, dass ich immer nur einen benutze)?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:34
Du hast ja auch keinen neuen Konstruktor deklariert.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:35
Nun unter Delphi tue ich das ja auch nicht zwingend. Zum Beispiel, wenn ich TObjectList überlade.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: [C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:37
Konstruktoren werden anscheinend nicht vererbt: http://msdn.microsoft.com/de-de/library/ms173149.aspx
Zitat:
Wenn eine Klasse so definiert wird, dass sie von einer anderen Klasse abgeleitet wird, erhält die abgeleitete Klasse implizit alle Member der Basisklasse, mit Ausnahme ihrer Konstruktoren und Destruktoren. In der abgeleiteten Klasse wird dadurch der Code der Basisklasse wieder verwendet, ohne dass dieser erneut implementiert werden muss. In der abgeleiteten Klasse können zusätzliche Member hinzugefügt werden. Auf diese Weise erweitert die abgeleitete Klasse die Funktionalität der Basisklasse.
Da musste wohl sowas machen:
Code:
class TreeNodePlus : TreeNode

    private DfmEntry FEntry;

    public TreeNodePlus(string a) : base(a) { } 

    public DfmEntry GetEntry()
    { 
        return FEntry;
    } 
    public void SetEntry(DfmEntry Value)
    { 
         FEntry = Value;
    } 
}
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: [C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:43
Hrmpf

Aber warum das so:
Code:
public TreeNodePlus(string a) : base(s) { }
?
Müsste das nicht base(a) sein?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: [C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:48
Zitat von xZise:
Müsste das nicht base(a) sein?
Ist es doch
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: [C#] Geerbten Konstruktor aufrufen

  Alt 24. Aug 2009, 10:59
Achso hatte ich ganz übersehen

Naja danke euch allen für die Hilfe in der Delphi(C#)-PRAXiS

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz