Frage

Die Frage ist für faule VB -Programmierer vorgesehen. Bitte.

In VB kann ich es tun und ich werde keine Fehler bekommen.

Beispiel 1

Dim x As String = 5
Dim y As Integer = "5"
Dim b As Boolean = "True"

Beispiel 2

Dim a As EnumType = 4
Dim v As Integer = EnumType.EnumValue

Beispiel 3

Private Sub ButtonClick(sender As Object, e As EventArgs)
    Dim btn As Button = sender        
End Sub

Beispiel 4

Private Sub ButtonClick(sender As Button, e As EventArgs)
    Dim data As Contact = sender.Tag
End Sub

Wenn ich sicher den erwarteten Laufzeittyp kenne, ist dies dann "verboten", sich auf das integrierte VB-Sprache zu verlassen? Wann kann ich mich verlassen?

War es hilfreich?

Lösung

Kommentar zu Markj Wechsel zur Antwort pro OP

Fühlen Sie sich frei, sich auf alles zu verlassen, was Sie wollen. Stellen Sie einfach sicher, dass Sie die Regeln für das wissen, was die implizite Besetzung tut. Das heißt, Beispiel 4 sieht in Zukunft sehr einfach aus, ich wäre viel glücklicher, wenn es vorher mindestens einen Null-Check gäbe.

Andere Tipps

Es ist sicherlich nicht "verboten" zu verwenden Option Strict Off Aber fast jeder rät nachdrücklich mit dem Einsatz Option Strict On.

Die Gründe werden beispielsweise in anderen Fragen erklärt Dies.

Wenn Sie Visual Basic 2008 verwenden, besteht eine andere Option darin, die Casting -Explicitaly (zB streng auf) durchzuführen und sich auf die Option zu verlassen, die impliziert ist, damit Sie den Typ nicht zweimal schreiben müssen.

Dim x = 5.ToString()  
Dim data = DirectCast(sender.Tag, Contact)

Die Ironie der "faulen" Praktiken wie dieser ist, dass sie auf lange Sicht oft mehr Zeit kosten. Können Sie sich wirklich absolut sicher sein, dass Ihre Eingaben immer in einem Format vorliegen, das unter allen Umständen und in allen Orten automatisch auf den beabsichtigten Typ gegossen werden kann?

Wenn Sie all die möglichen Auswirkungen durchdenken und die fast unvermeidlichen Fehler umgehen, wird wahrscheinlich mehr Zeit in Anspruch nehmen, als nur Ihre Variablen stark zu tippen, Ihre Eingaben streng zu validieren und bei Bedarf explizit zu gießen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top