'Option Strict On' lässt spätes binden nicht zu

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von lang11.

    'Option Strict On' lässt spätes binden nicht zu

    Moin,

    mir wurde hier im Forum gesagt man soll immer "Option Strict ON" ins Programm schreiben, da man sonst gar nicht richtig programmieren lernt. Dies stellt mich nun vor ein Problem.
    Ich habe ein Programm, dass für 6 Variablen zufällige Werte generiert und das ganze so gelöst:

    VB.NET-Quellcode

    1. Dim rnd As New Random
    2. Dim output(5) As Object
    3. Dim input As Object
    4. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. input = "abcdefghijklmnopqrstuvwxyz1234567890"
    6. End Sub
    7. Private Sub Zufall()
    8. For j = 0 To 5
    9. output(j) = input(rnd.Next(input.Length))
    10. Next j
    11. a = Convert.ToString(output(1))
    12. b = Convert.ToString(output(2))
    13. c = Convert.ToString(output(3))
    14. d = Convert.ToString(output(4))
    15. f = Convert.ToString(output(5))
    16. g = Convert.ToString(output(6))
    17. t = a & b & c & d & f & g
    18. TextBox1.Text = t
    19. End Sub


    Nun kommt aber bei

    VB.NET-Quellcode

    1. ​output(j) = input(rnd.Next(input.Length))
    der Error ""Option Strict On" lässt spätes Binden nicht zu." und keine Ahnung wie man das fixt.


    Mit freundlichem Gruß
    Jou, einfacher Fix, deklarier input als das was es eigentlich auch ist. Ein String.

    Und das gilt von nun an für alle Variablen. Nix mehr mit Object.

    Selbes gilt auch für output.
    Dann kannst dir später das Convert.ToString() oder wie es eigentlich korrekt wäre output(1).ToString() sparen, da es ja bereits String ist.
    @EaranMaleasi Jou.
    @lang11 Deine Indizes laufen falsch:
    Dim output(5) As Integer => Es gibt die Indizes { 0, 1, 2, 3, 4, 5 }
    Dein Code knallt in Zeile 22.
    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!