Warum kompiliert sich das folgende in VB.NET nicht?Wie wird IsNullOrEmpty in VB.NET verwendet?
Dim strTest As String
If (strTest.IsNullOrEmpty) Then
MessageBox.Show("NULL OR EMPTY")
End if
Warum kompiliert sich das folgende in VB.NET nicht?Wie wird IsNullOrEmpty in VB.NET verwendet?
Dim strTest As String
If (strTest.IsNullOrEmpty) Then
MessageBox.Show("NULL OR EMPTY")
End if
IsNullOrEmpty wird 'geteilt', so dass Sie es auf diese Weise verwendet werden soll:
If String.IsNullOrEmpty(strTest) Then
String.IsNullOrEmpty ist eine gemeinsame (oder statisch, in C#) Methode.
Dim strTest As String
If (String.IsNullOrEmpty(strTest)) Then
MessageBox.Show("NULL OR EMPTY")
End if
Wenn ich das tue, heißt es, dass eine NullPointerException zur Laufzeit ausgelöst werden konnte. – CJ7
@ CJ7 Das liegt daran, dass Sie 'strTest' verwenden, ohne einen Wert zu setzen (was * ein Fehler sein könnte *), so dass es immer' Nothing' ist. Sie können es umgehen, indem Sie 'Dim strTest As String = Nothing' z. um es explizit auf 'Nothing' zu setzen. – sloth
@ Mr.Steak: das scheint ein bisschen komisch, denn wenn ich es nicht auf etwas setze, wird es sowieso nichts. Warum sollte ich es explizit auf 'Nothing' setzen müssen - ergibt keinen Sinn! – CJ7
Sie können tatsächlich vergleichen nur auf eine leere Zeichenfolge:
If strTest = "" Then
MessageBox.Show("NULL OR EMPTY")
End If
Was ist, wenn 'strTest' nichts ist? 'IsNullOrEmpty' enthält explizit eine Überprüfung, ob' strTest' nichts ist. Ihre Aussage überprüft dies nicht. –
Tatsächlich wird String-Vergleich gegen eine leere Zeichenfolge True für Nothing auch in VB zurückgegeben. Probieren Sie es aus, wenn Sie mir nicht glauben. Oder vielleicht überzeugt Sie das: http://stackoverflow.com/questions/2633166/nothing-string-empty-why-are-these-equal –
+1 @ThorstenDittmar, Rolf hat Recht. VB.Net behandelt 'Nothing' als identisch' '' ', wenn Stringvergleiche (und auch an anderen Stellen) durchgeführt werden. – MarkJ
Der Compiler sagt: 'Argument nicht für Parameter 'Wert' von 'Public Gemeinschafts-Funktion IsNullOrEmpty (Wert As String) As Boolean' angegeben .', Sie können also vermuten, dass Sie kein Argument für den Parameter "value" dieser Methode angegeben haben. Was ich sagen möchte, ist, dass der Compiler (meistens) Ihnen sagen wird, was mit Ihrem Code nicht stimmt. – sloth