VB中ptivate sub中sub什麼意思?
01-21
Subroutine,子常式的意思。
Routine此處的意思跟function(函數)或者procedure(過程)是類似的。在一般用法上,function指有返回值的,procedure或者routine指沒有返回值的。Visual Basic里Sub跟Function的差別是:前者不返回任何值,而後者會返回值。
Sub是sub-routine的縮寫,sub即為「子」,routine即為「常式」,可以理解為C語言的void函數,即不帶返回值的函數。
這個關鍵字從早期的BASIC語言就有了,例如MS的Quick BASIC,對應的語句是gosub,即跳轉到該函數。delphi(pascal)中也有對應的東西:procedure。
帶返回值的VB和delphi都叫function
sub是子過程的意思 在模塊裡面進行調用
最早我記得在GWbasic里就有一個GOSUB語句是用來調用所謂的子程序的,後來就和goto語句一起被砍了。
算是某種歷史遺留吧,自從QBASIC引入function概念之後,我覺得就很雞肋了。
順便說一句,貌似在函數堆棧設計方面有所不同吧,畢竟是面向過程年代的東西。反正當時寫個八皇后之類的東西,比起c來說難多了。就因為不好寫迭代。Sub是Subroutine,就是子程序。我記得以前寫VBS的時候是說無返回值的是Sub有返回值的是Fun,也不知道對的還是錯的,也不知道在VB里是不是這樣=.=
VB中ptivate sub中sub什麼意思?
================
你大概想說的是Private sub 吧, 題目中拼寫有錯誤.
顧名思義, 就是 "私有"子程序 而已.
關於私有還是公有, 可以參考變數的作用域和生存期
子程序(Subroutine)和函數(Function)在一些語言中還是有所區分的, 但是在C Style語言中已經統一了, 無非是帶不帶返回值的差別. 所以C裡面統統是Function, 大不了返回空, 就是Void
所以, 如果只需要存在於某一個模塊中的過程, 對於該模塊而言只需要定義成Private sub即可. 因為不需要在別的模塊中用到, (反之就是Public sub, VB中可以省略Public關鍵字)
Sub是過程/子常式的關鍵字,類比C中的void xxx()。Private是表示類的私有對象的關鍵字。
BASIC是面向過程的,所以有SUB指令表示子過程,然後到了VB這種半面向對象的語言里,SUB被保留了,類似FUNCTION(函數),到了完全面向對象的http://VB.NET,這種關鍵字依舊被保留了下來。
推薦閱讀:
※有什麼是 Visual Basic 6 可以做,但是別的大多數語言不能做的?
※現在學VB過時了嗎?
※vb開發中字元串傳參出現『口』符?
TAG:VisualBasic |