Objekt mit ReadOnly Variablen intern beschreiben

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von BlueLagoonX.

    Objekt mit ReadOnly Variablen intern beschreiben

    Guten Tag,

    ich habe eine Klasse in der ich über die Private Subs Werte ändern möchte, diese sollen von Außerhalb des erstellten Objekts gelesen aber nicht geändert werden können.

    Hier mal ein Beispiel;

    VB.NET-Quellcode

    1. Public Class MyTest
    2. Public ReadOnly Property Value As String = ""
    3. Private Tmp_Value As String
    4. Sub New(ByVal Value As String,
    5. ByVal P As Parameters)
    6. With Me
    7. .Tmp_Value = Value
    8. Select Case P
    9. Case Parameters.Blue
    10. .Value = "Blau"
    11. Case Parameters.Green
    12. .Value = "Grün"
    13. Case Parameters.Red
    14. .Value = "Rot"
    15. Case Else
    16. End Select
    17. End With
    18. End Sub
    19. Public Enum Parameters As Byte
    20. Red = 5
    21. Green = 6
    22. Blue = 19
    23. End Enum
    24. End Class


    Zu Recht meckert der Editor, dass Value ReadOnly ist.
    Wie ist es möglich, Value einem Wert innerhalb des Objektes zuzuweisen, welcher von Außerhalb dann nicht mehr geändert werden kann?

    Freundliche Grüße :)

    VB.NET-Quellcode

    1. Public Class MyTest
    2. Public ReadOnly Property Value As String
    3. Get
    4. Return _Value
    5. End Get
    6. End Property
    7. Private _Value As String
    8. Sub New(ByVal Value As String,
    9. ByVal P As Parameters)
    10. _Value = Value
    11. Select Case P
    12. Case Parameters.Blue
    13. Value = "Blau"
    14. Case Parameters.Green
    15. Value = "Grün"
    16. Case Parameters.Red
    17. Value = "Rot"
    18. Case Else
    19. End Select
    20. End Sub
    21. Public Enum Parameters As Byte
    22. Red = 5
    23. Green = 6
    24. Blue = 19
    25. End Enum
    26. End Class
    Wobei natürlich Quatsch ist, dass du sowohl Parameters als auch Value übergibst.
    Guck dirmal dieses an:

    VB.NET-Quellcode

    1. Public Class MyTest
    2. Public ReadOnly Property Value As String
    3. Get
    4. Return _Value.ToString
    5. End Get
    6. End Property
    7. Private _Value As Parameters
    8. Sub New(P As Parameters)
    9. _Value = P
    10. End Sub
    11. Public Enum Parameters As Byte
    12. Red = 5
    13. Green = 6
    14. Blue = 19
    15. End Enum
    16. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()