2012-02-15 2 views
1

나는 Null과 같은 변수를 가졌지 만, 그것이 "Null"과 같은지 여부를 묻는다면? 왜 거짓말이 아니겠습니까?Null 변수 = ""는 Null로 변환됩니까?

var1 = vbNull 
Debug.Print var1 = "" 

출력은 Null입니다. 왜 그것이 false이 아니겠습니까?

+0

저는 VB를 잊어 버렸습니다. 그러나 많은 언어로 '=='은 동등성 검사이고 '=='는 동등성 검사입니다. 또한 "똑똑한 따옴표"를보십시오. –

+0

VB6에서는 단일'='입니다. – CJ7

+0

"왜"는 정말로 유효한 질문이 아닙니다. 유일한 대답은 "그것이 구현 된 방법이기 때문입니다." – Bob77

답변

3

VB6은 null propagation입니다. Null과 관련된 표현식의 결과는 항상 null입니다.

' in this code below V always has the value Null 
Dim V As Variant 
V = 1 + Null 
V = Null + Right$("SomeText", 1) 
V = Right("SomeText", 0) 
+0

@CraigJ - 기사 링크에서 알 수 있듯이 Null 전파는 데이터베이스 응용 프로그램에서 일반적으로 사용됩니다. VB6은 VBA (Visual Basic for Applications)에서 발전했으며 VBA는 Access 데이터베이스 응용 프로그램을 포함하는 Microsoft Office 자동화의 필요성을 염두에두고 개발되었습니다. 당시로서는 좋은 생각 같았습니다. – rskar

+0

위키 백과는 Visual Basic이 "버려진 'Omega'데이터베이스 시스템 용으로 설계된"기본 BASIC 엔진 "과 결합 된 GUI 인터페이스 모듈 (코드 명"Ruby ")로 시작했음을 나타냅니다. 그래서 VB는 처음부터 DB 응용 프로그램 용으로 설계된 것 같습니다. – rskar

+0

@rskar VB6이 VBA에서 진화했다고 생각하지 않습니다. 아마 다른 방향 일 것입니다. – CJ7

관련 문제