標籤:

VB中ptivate sub中sub什麼意思?


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 |