다음은 VB.NET에서 컴파일되지 않는 이유는 무엇입니까?VB.NET에서 IsNullOrEmpty를 사용하는 방법?
If String.IsNullOrEmpty(strTest) Then
다음은 VB.NET에서 컴파일되지 않는 이유는 무엇입니까?VB.NET에서 IsNullOrEmpty를 사용하는 방법?
If String.IsNullOrEmpty(strTest) Then
IsNullOrEmpty은 '공유'한다.
Dim strTest As String
If (String.IsNullOrEmpty(strTest)) Then
MessageBox.Show("NULL OR EMPTY")
End if
String.IsNullOrEmpty는 (C#으로, 또는 정적) 공유 방법 : 당신이 그런 식으로 사용해야하므로
Dim strTest As String
If (strTest.IsNullOrEmpty) Then
MessageBox.Show("NULL OR EMPTY")
End if
내가 할 때 런타임에 NullPointerException을 발생시킬 수 있다고합니다. – CJ7
@ CJ7 값을 설정하지 않고 strTest를 사용하기 때문에 (항상 실수 일 수 있음) 항상 Nothing입니다. 'Dim strTest As String = Nothing'을 사용하여 주위를 둘러 볼 수 있습니다. 명시 적으로'Nothing'으로 설정합니다. – sloth
@ Mr.Steak : 조금 이상하게 보입니다. 아무 것도 설정하지 않으면 어쨌든 '아무것도 아닐 것'입니다. 명시 적으로 Nothing으로 설정해야하는 이유는 무엇입니까? – CJ7
당신은 실제로 단지 빈 문자열로 비교할 수 있습니다
이If strTest = "" Then
MessageBox.Show("NULL OR EMPTY")
End If
'strTest'가'nothing'이라면? 'IsNullOrEmpty'는'strTest'가'nothing'인지 여부를 명시 적으로 확인합니다. 귀하의 진술은 이것을 확인하지 않습니다. –
실제로 빈 문자열에 대한 문자열 비교는 VB에서 Nothing에도 true를 반환합니다. 당신이 나를 믿지 않는다면 시도해보십시오. 아니면 이것으로 당신을 확신시킬 수 있습니다 : http://stackoverflow.com/questions/2633166/nothing-string-empty-why-are-these-equal –
+1 @ThorstenDittmar, Rolf가 바로 이것입니다. VB.Net은 문자열 비교를 할 때 (그리고 다른 곳에서도)'Nothing'을 동일한'' "'으로 취급합니다. – MarkJ
컴파일러는 말한다 :'인수 매개 변수의 '가치' '공공 공유 기능 IsNullOrEmpty (문자열로 값) 부울로'지정되지 그래서 당신은 그 메소드의 'value'매개 변수에 대한 인수를 지정하지 않았기 때문에 그것이라고 추측 할 수 있습니다. 내가 말하고자하는 것은 컴파일러가 (대부분의 경우) 컴파일러가 코드에 무엇이 잘못되었는지를 알려주는 것입니다. – sloth