J'ai une instruction IF qui valide les données.Prioriser la section de l'instruction IF
ressemble fondamentalement ceci:
Dim s As String = Nothing
If s Is Nothing Or s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
Console.Read()
Je voudrais vérifier s'il n'y a rien d'abord parce que si je l'écris cette façon, il jette un NullReferenceException.
J'ai pensé réécrivant comme ceci:
If s Is Nothing Then
Console.WriteLine("Please enter a value")
ElseIf s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
Mais si je fais cela, j'ai le même message deux fois et je crois qu'il est moins clair que mon intention erreur.
J'ai également essayé de lancer une parenthèse autour de la clause Is Nothing, mais cela ne fonctionne pas.
Y at-il un élégant quoi tester si l'objet n'est rien et ensuite tester une propriété de celui-ci?
vrai. Toutefois, cela n'explique pas pourquoi son second code renvoie également une exception NullReference. Dans l'ignorance de ce mot clé, son deuxième code devrait être une solution de contournement valide. –
@Daniel Daranas: Hmm, c'est vrai. Je suppose que je ne peux tout simplement pas enrouler ma tête Est-ce que rien ne retourne une exception NullReferenceException. – Powerlord
Oups Je pense que j'ai mal compris ce que le PO a dit. Il dit qu'il "reçoit le même message d'erreur deux fois", se référant probablement à "S'il vous plaît entrer une valeur". –