vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Generische Collection und das gelistete Objekt vererben 
Autor: Philipp15
Datum: 10.06.07 21:49

Hi Leute, ich hab ein sehr OOP-spezielles Problem:
Ich bin gerade dabei ein Modellbahnsteuerungsprogramm zu programmieren, und möchte jetzt ein wenig umstrukturieren. Da gibt es das Interface für Loks (stark vereinfacht):

Public Interface ILok
Property LokAdresse as byte
End Interface

Außerdem verwende ich aus System.Collections.ObjectModel eine Collection dafür:
Public Class LokCollection
Inherits KeyedCollection(Of Byte, ILokomotive)
Public Sub New()
MyBase.New()
End Sub
Protected Overrides Function GetKeyForItem(ByVal item As ILokomotive) As Byte
Return item.LokAdresse
End Function
End Class

So sieht das von außen aus, für die Programme, die die Loks ansteuern sollen (Automatik oder manuelle Steuerung am Bildschirim).
Um an die Lok ranzukommen, gibt es auch einen Treiber (auch eine Klasse). Das kann einer für eine Märklinanlage sein, für das Intelliboxinterface, uusw. In dem Treiber drin dann eine Unterklasse clsLok, die ILok implementiert. Nur die kann noch mehr, und darauf muss der Treiber zugreifen können:

Public Class clsLok
Implements ILok
.....Property usw
return myadresse
end property....

Public Sub A()
end sub
end class

Nur jetzt brauche ich dafür innerhalb des Treibers eine Collection, die:
zum einen Zugriff auf die Sub A lässt,
zum anderen aber auch als LokCollection (so heißt ja die andere Collectionklasse) darstellbar ist.
Annahme sie hieße Public Class Versuch. Dann müsste man ein Objekt vom Typ Versuch in eine Variable vom Typ LokCollection speichern können, so wie man eine clsLok in eine ILok speichern kann. Aber Trotzdem müsste das funktionieren:
Dim f as new Versuch
....
f(15).A()


Ist das irgendwie möglich? Sollte ich mich zu umständlich ausgedrückt haben, bitte sagts mir.

Vielen Dank für eure Hilfe
Euer Philipp

------------------------------
http://www.x10receiver.net/

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Generische Collection und das gelistete Objekt vererben879Philipp1510.06.07 21:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel