vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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 - Ein- und Umsteiger
Re: Objektmodell und Vererbung 
Autor: Schü
Datum: 12.11.14 17:58

Hallo Manfred!

Habe alles noch mal umgemünzt. Vererbung ist doch besser!

Allerdings habe ich noch ein allgemeines Problem beim Aufruf einer Funktion .Clone()
Der aufrufenden Klasse wird ein Objekt vom Typ MyReihe übergeben, das geklont werden soll,

Public Overridable Property Reihe As cReihe(Of T)
            Get
                Return mReihe
            End Get
            Set(value As cReihe(Of T))
                ' einen Clone einfügen...
                value = value.Clone
 
                mReihe = value
            End Set
        End Property
aber die Funktion .Clone() der Basisklasse cReihe(Of T) wird aufgerufen, obwohl Value vom Typ MyReihe (also der abgeleiteten Klasse) ist!
Daher kommt es später beim Casting zu einem Fehler.

Was mache ich falsch?

   ' ein beliebiges Element
    Public Class Element
        Public Länge As Integer
        Public Breite As Integer
 
        Public Sub New(ByVal L As Integer, B As Integer)
            Me.Länge = L
            Me.Breite = B
        End Sub
    End Class
 
    ' generische Klasse
    Public Class cReihe(Of T As Element)
        Public Anzahl As Integer
        Public Element As T
 
        Public Overridable Function Clone() As cReihe(Of T)
            Dim R As New cReihe(Of T)
            R.Element = Me.Element
            R.Anzahl = Me.Anzahl
 
            Return R
        End Function
    End Class
 
    ' originale Klasse
    Public Class MyTestClass
        Inherits TestClass(Of Element)
 
        Public Overloads Property Reihe As MyReihe
            Get
                Return DirectCast(MyBase.Reihe, MyReihe)
            End Get
            Set(value As MyReihe)
                MyBase.Reihe = value
            End Set
        End Property
    End Class
 
    ' Abgeleitete Klasse
    Public Class MyReihe
        Inherits cReihe(Of Element)
 
        Public Breite As Integer
 
        Public Overloads Function Clone() As MyReihe
            Dim R As New MyReihe
            R.Element = Me.Element
            R.Anzahl = Me.Anzahl
            R.Breite = Me.Breite
 
            Return R
        End Function
    End Class
 
    ' abgeleitete Klasse
    Public Class TestClass(Of T As Element)
        Private mReihe As cReihe(Of T)
 
        Public Overridable Property Reihe As cReihe(Of T)
            Get
                Return mReihe
            End Get
            Set(value As cReihe(Of T))
                ' einen Clone einfügen...
                value = value.Clone
 
                mReihe = value
            End Set
        End Property
    End Class
 
    'Aufrufbeispiel
    Sub Test()
        Dim R As New MyReihe()
        R.Anzahl = 100
        R.Breite = 10
        R.Element = New Element(30, 60)
 
        Dim TC As New MyTestClass
        TC.Reihe = R
 
        Debug.Print(TC.Reihe.Breite.ToString)
    End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Problem mit Vererbung und Schnittstellen2.224Schü05.11.14 08:30
Re: Problem mit Vererbung und Schnittstellen1.497Manfred X05.11.14 08:53
Re: Problem mit Vererbung und Schnittstellen1.476Schü05.11.14 09:08
Re: Problem mit Vererbung und Schnittstellen1.505Manfred X05.11.14 09:12
Re: Problem mit Vererbung und Schnittstellen1.469ModeratorDaveS05.11.14 08:55
Re: Problem mit Vererbung und Schnittstellen1.438Schü05.11.14 09:09
Re: Problem mit Vererbung und Schnittstellen1.445Schü05.11.14 09:14
Re: Problem mit Vererbung und Schnittstellen1.534Manfred X05.11.14 09:23
Re: Problem mit Vererbung und Schnittstellen1.452Schü05.11.14 14:21
Re: Problem mit Vererbung und Schnittstellen1.501Manfred X06.11.14 07:13
Re: Problem mit Vererbung und Schnittstellen1.447Schü06.11.14 11:45
Re: Problem mit Vererbung und Schnittstellen1.626Manfred X06.11.14 11:58
Re: Problem mit Vererbung und Schnittstellen1.506Schü06.11.14 12:02
Re: Problem mit Vererbung und Schnittstellen1.594Manfred X06.11.14 12:12
Re: Problem mit Vererbung und Schnittstellen 1/31.504Schü06.11.14 14:29
Re: Problem mit Vererbung und Schnittstellen 2/31.485Schü06.11.14 14:30
Re: Problem mit Vererbung und Schnittstellen 3/31.561Schü06.11.14 14:31
Re: Problem mit Vererbung und Schnittstellen 4/31.431Schü06.11.14 14:32
Objektmodell und Vererbung1.477Manfred X06.11.14 15:23
Re: Objektmodell und Vererbung1.438Schü12.11.14 17:58
Re: Objektmodell und Vererbung1.497Manfred X12.11.14 18:39
Re: Objektmodell und Vererbung1.454Schü13.11.14 09:41
Re: Objektmodell und Vererbung1.450Manfred X13.11.14 11:05

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