我與一些舊代碼工作,它定義了這樣一個全局變量...VB6中未設置變量的默認值是多少?
Public myvar
該變量從未賦值,但後來在測試中使用...
If myvar <> somevalue then
'do something
End If
什麼值的某些東西會被做?
我與一些舊代碼工作,它定義了這樣一個全局變量...VB6中未設置變量的默認值是多少?
Public myvar
該變量從未賦值,但後來在測試中使用...
If myvar <> somevalue then
'do something
End If
什麼值的某些東西會被做?
Empty
。Empty
,0
或""
...
當變量被初始化,一個 數值變量被初始化爲0, 一個可變長度的字符串是 初始化爲零長度字符串 (」 「),並且一個固定長度的字符串是 填充了零。變量變量 被初始化爲空。用戶定義類型變量的每個元素 初始化爲 ,就好像它是單獨的 變量。
從Get the most out of Variants in VB6我會做一個假設,如果myvar
不是「」,然後do something
。我不確定,現在無法檢查,但可以自己檢查。
當一個變種已宣告但 未分配的值,它包含了 特殊值空。您可以測試與IsEmpty函數
這...
如果 一個空的變體在 表達式中使用,就被當作要麼 值爲0或取決於表達一個空字符串 。
如果內存服務,如果`someValue`的值爲Nothing,或者是默認屬性產生Nothing的對象等,則上面的代碼會崩潰,因爲不等於運算符會比較注意`someValue`的類型是`Object`,嘗試獲取它的默認屬性,然後嘗試比較它(如果需要,則獲取的默認屬性等)。由於試圖獲取默認屬性「Nothing `會失敗,代碼會崩潰。 – supercat 2012-11-21 19:18:13
@supercat問題說「這個變量永遠不會被分配一個值」。因此,因爲這是VB6它將包含空(與Nothing不同)。因此,除了Empty,0或「」 – MarkJ 2012-11-21 20:15:00