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: Übergabe unbekannter objekte 
Autor: keco
Datum: 27.12.10 10:40

Normalerweise leitet man all diese Klassen (Dreieck, Kreis, Rechteck, ...) von einer gemeinsamen Basisklasse ab. Diese Basisklasse wäre dann der richtige Datentyp für deine ???.

Ich hatte damals etwas ähnliches.
Friend MustInherit Class GeometricBase(Of T)
    Protected ePoint() As Point
    Protected eFormat As String
    Protected eDraw, eDrawCenter As Color
 
    Public MustOverride Property Point(ByVal i As Integer) As Point
    Public MustOverride Property X(ByVal i As Integer) As Double
    Public MustOverride Property Y(ByVal i As Integer) As Double
    Public MustOverride Property Format() As String
    Public MustOverride Property DrawColor() As Color
    Public MustOverride Property DrawCenterColor() As Color
 
    Public MustOverride Function IsBiggerThan(ByVal ComparingObject As T) As _
      Boolean
    Public MustOverride Function IsSmallerThan(ByVal ComparingObject As T) As _
    Boolean
    Public MustOverride Function IsEqual(ByVal ComparingObject As T) As Boolean
    Public MustOverride Overrides Function ToString() As String
 
    Public MustOverride Sub Draw(ByVal Graphic As Graphics, ByVal Einheit As _
      Double)
    Public MustOverride Sub DrawCenter(ByVal Graphic As Graphics, ByVal Einheit _
    As Double)
End Class
Dazu gab es 2 Schnittstellen, die eine Unterscheidung von 2D und 3D -Objekten darstellten.
Interface IGeometric2D(Of T)
    Function GetFläche() As Double
    Function GetUmfang() As Double
    Sub Move(ByVal X() As Double, ByVal Y() As Double)
    Sub Move(ByVal NewPoint() As Point)
    Sub Move(ByVal Target As T)
    Sub Resize(ByVal Faktor As Double)
    Sub Rotate(ByVal Degree As Double)
End Interface
 
Interface IGeometric3D(Of T)
    Function GetVolumen() As Double
    Sub Move(ByVal X() As Double, ByVal Y() As Double, ByVal Z() As Double)
    Sub Move(ByVal Target As T)
    Sub Resize(ByVal Faktor As Double)
End Interface
Mit diesem Klassendesign machte ich damals meine ersten Versuche für die Verwendung von Schnittstellen und generischer Klassen. Ich gebe zu, dass das Design nicht unbedingt das beste ist und einiges sicherlich daneben ist (ich denke dabei an die Schnittstellen).

Jedenfalls erbten alle geometrischen Figuren von der gemeinsamen Basisklasse und implementierten die jeweilge Schnittstelle. Die Funktionsweise war im Endeffekt gegeben.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Übergabe unbekannter objekte1.046Chriz27.12.10 08:58
Re: Übergabe unbekannter objekte769keco27.12.10 10:40
Re: Übergabe unbekannter objekte717Katmay27.12.10 13:00

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