Entwickler-Ecke
Andere .NET-Sprachen - Interface und Property
XChris - So 18.06.06 23:19
Titel: Interface und Property
Hallo,
ich habe wieder ein kleines Verständisproblem ....
Ich habe eine Klasse A, diese liegt in einer DLL.
In einer zweiten DLL liegt das Interface, welches die Klasse implementieren soll. Die Klasse soll einige öffentliche lesbare Propertys erhalten:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| unit Server.Share;
interface uses log4net;
implementation type IServer = interface(IInterface) property Config: XmlContainer read; property ServerLogger: ILog read; end; end. |
Nach dem READ erwartet Delphi eine Methode. Diese will ich aber nicht öffentlich machen. Außerdem .... ein INTERFACE deklaiert ja nur, was es mal geben wird - wieso sollte ich also andere Methoden, wie sie auch immer heisen werden - bekanntgeben?
Gibt es irgend einen eleganten Weg, dass Delphi meine Propertys als Interface definiert, ohne dass ich die privaten erst in der Klasse exsitierenden Methoden hier schon "verraten" muß?
Chris
Moderiert von Christian S.: B- durch Delphi-Tags ersetzt
mkinzler - So 18.06.06 23:23
Zitat: |
Nach dem READ erwartet Delphi eine Methode. Diese will ich aber nicht öffentlich machen. |
Nein du kannst auch direkt ein privates Feld angeben. Nur bei Interfaces gibt es keine Eigenschaften. Ein Interface dient ja gerade Methoden(Signaturen) vorzuschreiben
Christian S. - So 18.06.06 23:30
Hallo!
Du musst explizit die Getter und Setter angeben, welche in Delphi in Interfaces nur Methoden sein können. Andere Sprachen (z.B. C# oder Chrome) sind da in dieser Hinsicht nicht ganz so pingelig und lassen es zu, nur zu definieren, ob Lese- und/oder Schreibzugriff vorhanden sein soll - egal wie der aussieht.
Grüße
Christian
XChris - So 18.06.06 23:41
Das macht mich nicht glücklich.
Also kann man sich Propertys bei Interfaces schenken, da es keine Möglichkeit gibt, vernünftig zu kapseln.
:-(
Chris
Christian S. - Mo 19.06.06 10:47
XChris hat folgendes geschrieben: |
Also kann man sich Propertys bei Interfaces schenken, da es keine Möglichkeit gibt, vernünftig zu kapseln. |
Zumindest mit Delphi ist dem so. Für die Entwicklung unter .NET kann ich eigentlich jedem nur von Delphi abraten, sofern er kein altes Projekt portieren will. Dann kann man mal drüber nachdenken.
Delphi_Apostel - Mo 19.06.06 11:36
Hallo,
die Diskussion über Delphi unter .NET hatten wir schon zu genüge (eichfach mal im forum suchen...) Jedem sofort abzuraten, Delphi unter .NET zu programmieren finde ich persönlich falsch. Jeder sollte die Vor- und Nachteile selber kennen (herausfinden). Mein Rat: einfach mal D2006 als Testversion herunterladen und ausprobieren - es lohnt sich wirklich!!!
MfG
Delphi-Apostel
Christian S. - Mo 19.06.06 11:42
Delphi_Apostel hat folgendes geschrieben: |
Mein Rat: einfach mal D2006 als Testversion herunterladen und ausprobieren - es lohnt sich wirklich!!! |
Lohnt es sich wirklich, mit einer veralteten Plattform (1.1) in .NET einzusteigen? Um vorhandene Projekte weiterzuführen - okay. Aber für neue Projekte macht das einfach mal gar keinen Sinn.
XChris - Mo 19.06.06 12:26
Holla,
sehr interessant.
Also ich hab grad in einer kleinen Firma angefangen. Hier ist alles Delphi auf Win32 und man hat erkannt, umzustellen.
Ich persönlich würde am liebsten alles in DLL in C# auslagern - nach und nach ersetzen (was neu werden muß) und irgendwann in einer Nacht und Nebelaktion den Kern der Anwendung (so in nem Jahr) auf net portieren.
Was könntet ihr raten und was für Argumente sprechen für Eure Wahl? Fakt ist, bissel Angst hät ich auch - wenn ich 10 jahre Delphi gemacht habe und was läuft und ich soll plötzlich damit komplett aufhören. Aus meiner Sicht als Entwickler ist dies jedoch wohl unumgänglich.
Chris
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!