-
automatic, manual 是什麼意思?
-
問題 1:定址時,由於變數的位址直接傳遞給引數,因此涉及到兩個記憶體位址的大小和型別,因此如果型別不匹配,就會生成錯誤資訊。 對於傳遞值,沒有這樣的限制,因為你傳遞的只是“值”。
但是,傳遞值並不意味著不會產生錯誤,例如
dim x as string
x = "a"
sub proc(byval a as integer)
所以:呼叫 proc(x)。
在這種情況下,將發生型別不匹配錯誤。 由於引數 a 是乙個整數變數,因此如果為其分配乙個字串變數,則會產生錯誤,例如,這與變數型別不匹配的定義相同。
dim x as integer
x = "a"
這也可能導致型別不匹配錯誤。
因此,正確定義變數和引數型別是VB程式設計的好習慣之一!! 如果你遵守規則,你就不會犯錯誤!
Q2:關於模組級變數,其作用域是整個模組,當模組被解除安裝或退出時,變數就會消失。 讓我們從簡化您的開始:
private x as string
private sub command1_click()
x = 5end sub
private sub proc(byval a as integer, byval b as integer)
msgbox x
x = 5 * x
msgbox x
end sub
使用上面的**,我們可以得到乙個顯示結果 5 的彈出視窗。 結果是 25,這是不斷呼叫和修改模組級變數的結果。
我知道您的實際問題是 byref 和 byval 之間的區別,您可以看到我過去回答的示例
-
在原始文件的第一行寫入選項顯式後,將強制檢查所有變數的宣告。
1:如果資料型別不匹配,引數傳遞時會有提示,但當宣告為變體時,則不會。
2:變數宣告方法:關鍵詞:dim、private、public
1:DIM適用於,宣告形式、過程、函式和變數。
dim a as string
在表格中宣告時,它被放置在所有**的頂部。 此變數在此形式的所有過程和函式中都可用,但不能以其他形式訪問。 這是乙個表單級變數。
私有子 main() 或函式 ( 私有函式 moveObject()。
dim a as string '這個 A 變數與上面的 A 相同。 但是,適用範圍不同。 它僅適用於此程序或函式。
與表格A沒有衝突。 這是過程變數。
end sub
public a as string
此變數宣告是在標準模組中進行的。 它可以被程序、函式、變數和整個系統使用和訪問。 它的值在使用過程中也可以隨時改變。 這些是全域性變數。
婚姻之星這個位置意味著你即將找到你的另一半或準備結婚,無論如何,它是婚姻的代表。 第六宮的婚姻行星可能來自工作夥伴,但他們並不合適。 這個男孩非常專注於他的工作,他的妻子很難自己選擇這個男孩。 >>>More
新手妝先滋潤**,先用手將粉底均勻塗抹在臉上,然後將BB霜塗抹在臉上,再塗抹雙眼皮貼片,眼影部分選擇自己喜歡的顏色,然後塗抹腮紅,最後用散粉定妝。 >>>More
開啟錯誤後,VB 將在同一目錄中生成乙個日誌檔案,使用記事本開啟它,並檢視您沒有的控制項的名稱。 重新開啟VB,而不是剛才開啟專案! 檢查"部件"對話方塊中沒有這些控制項。 >>>More