Maximaler Wert zuweisen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Maximaler Wert zuweisen

    Hallo und guten Morgen,

    ich habe eine Frage.
    Ich haben eine Nachkommazahl.
    Diese würde ich gern einen Maximalwert zuweisen.
    Wie geht das??
    Habe den Codeschnipsel

    Quellcode

    1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. Dim zahl As Double
    3. zahl.MaxValue = 10.0
    4. zahl.MinValue = 1.0
    5. End Sub


    Leider klappt das so nicht...... :cursing:
    Danke für die Hilfe
    Mach dir doch einfache eine Klasse dafür, so könnte das aussehen:

    VB.NET-Quellcode

    1. Public Class MyDouble
    2. Sub New()
    3. End Sub
    4. Public MinWert As Double = Double.MinValue
    5. Public MaxWert As Double = Double.MaxValue
    6. Private _zahl As Double
    7. Public Property Zahl As Double
    8. Get
    9. Return _zahl
    10. End Get
    11. Set(value As Double)
    12. If value > MaxWert Then
    13. Throw New Exception("Wert zu groß!")
    14. ElseIf value < MinWert Then
    15. Throw New Exception("Wert zu klein!")
    16. Else
    17. _zahl = value
    18. End If
    19. End Set
    20. End Property
    21. End Class

    VB.NET-Quellcode

    1. Private X As New MyDouble
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. X.MaxWert = 99
    4. X.MinWert = 1
    5. X.Zahl = 100
    6. End Sub
    @ s_ollis So geht das nicht.
    Mach Dir eine entsprechende Klasse:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    3. Dim dd = New MyDouble(10, 0, 100)
    4. dd.Value = -1
    5. MessageBox.Show(dd.ToString)
    6. End Sub
    7. End Class
    8. Public Class MyDouble
    9. Private _Value As Double
    10. Private _Minimum As Double
    11. Private _Maximum As Double
    12. Public Property Value As Double
    13. Get
    14. Return _Value
    15. End Get
    16. Set(value As Double)
    17. 'If value < _Minimum OrElse value > _Maximum Then
    18. ' Throw New ArgumentOutOfRangeException
    19. 'End If
    20. ' oder
    21. If value < _Minimum Then
    22. _Value = _Minimum
    23. ElseIf value > _Maximum Then
    24. _Value = _Maximum
    25. Else
    26. _Value = value
    27. End If
    28. End Set
    29. End Property
    30. Public Sub New(Val As Double, min As Double, max As Double)
    31. _Value = Val
    32. _Minimum = min
    33. _Maximum = max
    34. End Sub
    35. Public Overrides Function ToString() As String
    36. Return Value.ToString
    37. End Function
    38. End Class

    @Derfuhr selbe Lösung, es wurde nicht angezeigt, dass die schon da war. :/
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    s_ollis schrieb:

    bekomme ich eine Fehlermeldung.
    Welcher Code?
    Welche Meldung?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    X wäre die Instanz, du musst schon der Property den Wert zuweisen,

    VB.NET-Quellcode

    1. 'falls du meine Klasse genommen hast dann
    2. x.Zahl = x.Zahl + 1
    3. 'bei RodFromGermany´s Klasse ist es Value
    4. x.Value = x.Value + 1
    5. 'oder so:
    6. x.Value += 1

    s_ollis schrieb:

    hier der Code:
    Wie ist x deklariert und instanziiert?
    Fehlermeldung?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!