728x90

안녕하세요. 공유민입니다.

이번 포스팅은 배열을 사용할 때, Nothing 인지 아닌지 확인하는 방법을 정리하려고 합니다.






Array Nothing detect



VB 6.0에서 배열을 선언만(Dim) 해 놓고 

1
Public testArray() As Byte    ' or DimtestArray() As Byte
cs




추후에 아래처럼 재선언을 해야하는데

1
ReDim testArray(1 To 10)    
cs




배열을 재선언(ReDim) 하였는지 아닌지에서 루틴이 달라져서 이것을 확인하기 위해

1
2
3
If Not(testArray Is NothingThen    ' Or testArray() Is Nothing
    <...>                        
End If
cs
위 소스를 사용하면 선언하지 않은 배열을 사용하기 때문에 사용할 수 없다고 메시지가 나옵니다.

(컴파일 오류입니다. 형식이 일치하지 않습니다.)


또,

1
2
3
If UBound(testArray) > 0 Then
    <...>
End If
cs

이런 방법을 써도 만약 재선언이 되어 있지 않다면 에러가 발생합니다.


게다가 VB 6.0 에서는 IsNot도 지원하지 않습니다.




그래서 다른 방법을 모색하다가 구글링을 하다가 해결법을 찾아냈습니다.

1
2
3
If (Not testArray()) = -1 Then
    <...>
End If
cs
이 소스를 컴파일하면 testArray()는 Nothing으로 나오고 

그 앞에 Not과 함께 쓰이면-1을 리턴합니다. 



위와 같이 적어주면 배열이 재선언(ReDim) 되었는지 안 되었는지 확인할 수 있습니다.

도움이 되셨기를 바랍니다.




+ Recent posts