當前位置:成語大全網 - 新華字典 - VBA Object對象的函數參數傳遞

VBA Object對象的函數參數傳遞

VBA的函數參數傳遞方式是 Byval和Byref ,數值類型、Stirng等那些值類型的是要非常註意用哪種方式的。對於Object對象引用類型的壹直都說2種方式完全沒有區別。

?Object對象的Byval和Byref參數真的沒有區別嗎?

對於操作的這個Object對象來說,可以認為是沒有區別,但是傳遞過程和其他數據類型的參數傳遞是壹樣的,遵守的規則並沒有改變。

對於Object對象,其實我們傳遞的只是 他的指針 ,也就是VarPtr得到的那個數字,是指向Object所在內存的地址。

可以理解為參數其實就是壹個LongPtr類型,所以妳是復制壹份這個LongPtr類型的數字傳遞,還是把這個LongPtr類型所在的內存地址傳遞給函數,對於Object這個對象來說,是沒有區別的。它最終都要通過這個數字所代表的內存地址找到Object對象。

從打印輸出可以看出,Byval傳遞需要復制參數,其實只是把保存對象地址的那個內存地址,也就是VarPtr得到的那個地址復制改變了,而這個地址中保存的數據仍然是ObjPtr的那個地址。