![]() |
Verständnisproblem bei der Impl. von Schnittstellen
Hallo zusammen,
wieder einmal eine kleine Frage. Wie sieht die Umsetzung in C# aus? Das besondere an den folgenden Zeilen ist die Umsetzung von get_Item. Diese kommt sowohl in der Schnittstelle, als auch in der ererbten Klasse ArrayList vor. Um ein Verdecken der get_Item Funktion der ererbten Klasse ArrayList zu vermeiden, kann man im Pascal folgendes Konstrukt verwenden. Nur wie würde der C# Code aussehen.
Delphi-Quellcode:
TConnectionNodeList = class(ArrayList, IConnectionNodeList)
private public constructor Create; function add(owner: System.Windows.Forms.Form; Name, Description: string): IConnectionNode; overload; //Umbau für die Schnittstelle function get_ItemHelper(index: integer): IConnectionNode; function IConnectionNodeList.get_Item=get_ItemHelper; function delete(owner: System.Windows.Forms.Form; Node: IConnectionNode): CCResult; end; |
Re: Verständnisproblem bei der Impl. von Schnittstellen
Angenommen, du hast eine Klasse ConnectionNode, welche IConnectionNode implementiert.
Jetzt köntest du einfach eine List<ConnectionNode> nehmen und die Property von IConnectionNodeList explizit implementieren.
Code:
Im Gegensatz zu Delphi verlierst du diese Implementierung nicht in abgeleiteten Klassen.
class ConnectionNodeList : List<ConnectionNode>, IConnectionNodeList
{ IConnectionNode IConnectionNodeList.this[int index] { get{return this[index];} } } Du kannst also problemlos das hier machen:
Code:
interface IConnectionNodeListAbleitung : IConnectionNodeList
{ void DoSomething(); } class ConnectionNodeListAbleitung : ConnectionNodeList, IConnectionNodeListAbleitung { public void DoSomething(); { // bla bla } } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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