dynamische Property

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    dynamische Property

    Hallo :)

    Mir fehlt ein Denkanstoß. Und zwar möchte ich gerne eine dynamische Property as Typ. Wie kann ich das umsetzen?

    VB.NET-Quellcode

    1. Public Class input
    2. Public Property Typ As InputTyp
    3. Public Property Name As String
    4. End Class
    5. Public Class DigitalInput
    6. Public _Value As Integer
    7. End Class
    8. Public Class AnalogInput
    9. Public _Value As Double
    10. End Class


    InputTyp soll entweder DigitalInput oder AnalogInput mit ihren jeweiligen Eigenschaften sein.

    Danke schonmal
    In Arbeit...
    Da ich auf'm Sprung bin, ein Schnellschuss:

    VB.NET-Quellcode

    1. Public Class FrmMain
    2. Dim MyInput1 As New Input(Of AnalogInput)
    3. Dim MyInput2 As New Input(Of DigitalInput)
    4. End Class
    5. Public Class Input(Of T As InputTyp)
    6. Public Property Typ As T
    7. Public Property Name As String
    8. End Class
    9. Public MustInherit Class InputTyp
    10. End Class
    11. Public Class DigitalInput : Inherits InputTyp
    12. Public _Value As Integer
    13. End Class
    14. Public Class AnalogInput : Inherits InputTyp
    15. Public _Value As Double
    16. End Class
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Bin noch ein wenig am lernen. Gucken wie sich alles verhält.

    VB.NET-Quellcode

    1. Public MustInherit Class InputTyp
    2. Public MyValue As Object
    3. End Class
    4. Public Class DigitalInput : Inherits InputTyp
    5. Public Property _Value() As Integer
    6. Get
    7. Return _Value
    8. End Get
    9. Set(ByVal value As Integer)
    10. MyValue = value
    11. End Set
    12. End Property
    13. End Class
    14. Public Class AnalogInput : Inherits InputTyp
    15. Public Property _Value() As Double
    16. Get
    17. Return _Value
    18. End Get
    19. Set(ByVal value As Double)
    20. MyValue = value
    21. End Set
    22. End Property
    23. End Class

    So hab ich es nun hinbekommen


    Edit.

    Ich habe die Inputs in einer Liste und kann so nun nach den Werten Fragen.

    VB.NET-Quellcode

    1. For Each i In _X.InputsList
    2. i.Name
    3. i.Typ.MyValue
    4. Next
    In Arbeit...
    Der Code ist böse, weil enthält verborgene Typ-Umwandlungen.
    Darum unbedingt Option Strict On machen.
    Das ist ein sehr leidiges Thema, aber wenn man ernsthaft Programmieren lernen will, muss man Datentypen auseinanderhalten können - daher sind verborgene Typ-Umwandlungen inakzeptabel.
    Also: Visual Studio - Empfohlene Einstellungen