![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
![]() |
#11 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 這個好像是 VB 的奇怪點
照理說 沒指定時是 Variant 這個類似變數 可任意接受/更換 變數型態 但 一開始時 Form_Load() 執行過一次 getMMdays 第二次要用就不行 我也說不上來 實際上要用 除錯方式監看 引數(變數)型態 的 變換才可知 VB是如何作業的 VB的 強迫轉換 與 C++的強迫轉換 還是有差異的 其實還可以做一些實驗來理解VB的編譯方式 比如 於 Form_Load() 重複執行兩次 nMdays = getMMdays nMdays = getMMdays(CInt(nYear.Text), CInt(nMonth.Text)) nMdays = getMMdays(CInt(nYear.Text), CInt(nMonth.Text)) 來證明是否為上述理論 如是 那又有另一個理論 是否執行第一次時 Function getMMdays(pnYear, pnMonth) 就會變成 Function getMMdays(pnYear as integer, pnMonth as integer) 或 Function getMMdays(pnYear as Variant, pnMonth as Variant) 以致於不能接受其他變數型態 對了 以自己的經驗 你可以用一個變數來間接傳值 這樣就可繼續用 Cint 方式 Private Sub Form_Load() '表格load nYear.Text = Year(Now) nMonth.Text = Month(Now) dim x dim y ' 要分開寫而不是 dim x,y 寫在一起 x=CInt(nYear.Text) y=CInt(nMonth.Text) nMdays = getMMdays(x,y) |
![]() |
送花文章: 2055,
![]() |