Question

La question est destinée aux programmeurs VB paresseux. S'il vous plaît.

Dans VB, je peux faire et je n'obtiendrai aucune erreur.

Exemple 1

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

Exemple 2

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

Exemple 3

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

Exemple 4

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

Si je connais sûrement le type d'exécution attendu, est-ce «interdit» de s'appuyer sur le casting intégré en langue VB? Quand puis-je compter?

Était-ce utile?

La solution

Commentez à Markj se déplacer pour répondre par OP

N'hésitez pas à compter sur tout ce que vous voulez, assurez-vous simplement de connaître les règles de ce que fait le casting implicite. Cela dit, l'exemple n ° 4 semble vraiment facile à briser à l'avenir, je serais beaucoup plus heureux s'il y avait au moins une vérification nul auparavant.

Autres conseils

Il n'est certainement pas "interdit" d'utiliser Option Strict Off Mais presque tout le monde conseille fortement d'utiliser Option Strict On.

Les raisons sont expliquées dans d'autres questions, par exemple cette.

Si vous utilisez Visual Basic 2008, une autre option consiste à faire le casting explicity (par exemple, l'option stricte) et à compter sur l'option implicite afin que vous n'ayez pas besoin d'écrire le type deux fois.

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

L'ironie des pratiques "paresseuses" comme celle-ci est qu'elles finissent souvent par vous coûter plus de temps à long terme. Pouvez-vous vraiment être absolument certain que vos entrées seront toujours dans un format qui peut automatiquement être jeté au type prévu, en toutes circonstances et dans tous les lieux?

Penser à toutes les implications possibles et gérer les bogues presque inévitables prendra probablement plus de temps que de taper fortement vos variables, de valider strictement vos entrées et de lancer explicitement si nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top