vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Untereigenschaften als Subklasse in Klasse anlegen und befüllen 
Autor: Manfred X
Datum: 31.12.14 13:42

Hallo!

Es gibt unterschiedliche Möglichkeiten.

Zunächst wäre zu prüfen, wie die Strukturen, Zusammenhänge usw in der Realität
gegeben sind, um danach zu entscheiden, wie man sie in einer Objektwelt des Programms
abbildet.

So könnte es neben der Basisklasse "Pumpe", die allgemeine Eigenschaften enthält
(z.B. Typbezeichner, Preis, Saugleistung) noch Untergruppen (=abgeleitete Klassen - "Inherits")
von Pumpen geben (z.B. Elektropumpe, Dieselpumpe), die jeweils auf spezifische
Eigenschaften der Antriebsart zugeschnitten sind und in einer nächsten Stufe daraus abgeleitete
Klassen für die einzelnen Modelle der Elekto- bzw. Dieselpumpen.
Werte für Eigenschaften eines Pumpenmodells, die durch die technische Spezifikation fest
vorgegeben sind, wären als Konstanten oder ReadOnly-Properties zu implementieren.

Ähnliche Strukturen sind bei den Dichtungen denkbar.
Da eventuell nicht alle Dichtungsarten bei allen Pumpenmodellen vorkommen, könnte man
z.B. pumpentyp-spezifische Dichtungslisten fest innerhalb der Pumpenmodell-Klassen einrichten.
Es wären dann nur Abfragen der Dichtungsliste zuzulassen, aber keine Zuweisungen oder
Eigenschaftsänderungen.


Hier ein Beispiel für die Verankerung der Klasse Dichtungen in der Klasse Pumpe:
    Public Class Pumpe
 
        'Pumpen-Member
        Private m_Typ As String
        Private m_gesperrt As Boolean
 
 
        ''' <summary>Öffentliche Klasse für Pumpen-Dichtungen</summary>
        Public Class Dichtung
 
            Private m_Werkstoff As String
 
            Public Property Werkstoff() As String
                Get
                    Return m_Werkstoff
                End Get
                Set(ByVal value As String)
                    m_Werkstoff = value
                End Set
            End Property
 
            Private m_Preis As Single
            Public Property Preis() As Single
                Get
                    Return m_Preis
                End Get
                Set(ByVal value As Single)
                    m_Preis = value
                End Set
            End Property
 
        End Class
 
 
        ''' <summary>Private Liste der Pumpen-Dichtungen</summary>
        Private m_Dichtungen As New List(Of Dichtung)
 
 
        Public Sub New(ByVal Typ As String, ByVal gesperrt As Boolean)
 
            Me.m_Typ = Typ
            Me.m_gesperrt = gesperrt
 
        End Sub
 
 
        Public Property Typ() As String
            Get
                Return m_Typ
            End Get
            Set(ByVal value As String)
                m_Typ = value
            End Set
        End Property
 
 
        Public Property gesperrt() As Boolean
            Get
                Return m_gesperrt
            End Get
            Set(ByVal value As Boolean)
                m_gesperrt = value
            End Set
        End Property
 
 
        Public Property DichtungsListe(Optional ByVal index As Integer = -1) As _
          Dichtung
            Get
                'Rückgabe einer Referenz / Daten in Liste sind änderbar
                'Return m_Dichtungen(index)
 
                'Rückgabe eines Clone / Daten in Liste nicht änderbar
                Dim vl As New Dichtung
                With m_Dichtungen(index)
                    vl.Preis = .Preis
                    vl.Werkstoff = .Werkstoff
                End With
                Return vl
            End Get
 
            Set(value As Dichtung)
                'Referenz in Liste eintragen
                'bei illegalem Index wird das Element angehängt, sonst erneuert
                If index < 0 Or index >= m_Dichtungen.Count Then
                    m_Dichtungen.Add(value)
                Else
                    m_Dichtungen(index) = value
                End If
            End Set
        End Property
    End Class
Anwendung:
  Dim mypumpe As New Pumpe("MegaSauger", False)
 
  'Instanz von Pumpe.Dichtung erstellen 
  Dim mydichtung As New Pumpe.Dichtung
 
  With mydichtung
       .Preis = 123.45
       .Werkstoff = "Kevlar"
  End With
 
  'Instanz der Dichtungsliste hinzufügen
  mypumpe.DichtungsListe = mydichtung
 
 
  'Element-Eigenschaft aus der internen Liste der Dichtungen 
  'per Property abfragen
  Dim ws As String = mypumpe.DichtungsListe(0).Werkstoff
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Untereigenschaften als Subklasse in Klasse anlegen und befül...1.537vb.net anfänger30.12.14 22:15
Re: Untereigenschaften als Subklasse in Klasse anlegen und b...1.185Manfred X31.12.14 08:46
Re: Untereigenschaften als Subklasse in Klasse anlegen und b...904vb.net anfänger31.12.14 12:23
Re: Untereigenschaften als Subklasse in Klasse anlegen und b...892Manfred X31.12.14 13:42

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-2024 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