subabc(x,y,z)的方法來調(diào)用返回。
成都創(chuàng)新互聯(lián)公司專注于宿豫企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。宿豫網(wǎng)站建設(shè)公司,為宿豫等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
sub可以使用subabc(x,y,z)的方法來調(diào)用,升巖仔其中的x,y,z可以是傳入值,也可以是返回值,當(dāng)然也可以不返,如subabc()Function可以使用functionabc(x,y,z)的方法來調(diào)用同,其中x,y,z為傳入值,F(xiàn)unction與sub最大的差別是Function可以使用函數(shù)體來返回值。
VisualBasic.NET是基于微吵汪棗神軟.NETFramework之上的面向?qū)ο蟮木幊陶Z言。
你的?sub過程這個(gè)是子過程,無返回值的,這里Form1_Load中慶余b仍然 ?b=""
如果你想b="注釋",將你的sub過程改成自定義函數(shù),用b來接收返回值就行了,代碼如下
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
Dim?a?As?String?=?"rem"
Dim?b?As?String?=?""
b?=?sub過程(b,?a)
Me.Text?=?b???悄正?????'為什么“b”不是等于?"注釋"
End?Sub
Private?Function?sub過程(ByVal?輸出?As?String,?ByRef?輸入?As?String)?As?String
If?輸入?=?"rem"?Then
啟差悔?????????輸出?=?"注釋"
End?If
Return?輸出
End?Function
C返回局部變量的值也沒問題啊
只是如果這個(gè)局部變量是指向棧上的內(nèi)存的指針,由于函數(shù)結(jié)束后活動(dòng)棧被清空,會(huì)導(dǎo)致指針失效。
VB.NET不支持指針語法,它不可能返回指向棧上的指針,頌衡所以用不著擔(dān)心這個(gè)問題。
你的理解
第一點(diǎn)理解是正確的,不過和這個(gè)問題關(guān)系不大。因?yàn)橐妙愋捅緛砭筒皇欠峙湓跅I系?,它?dāng)然就不受函數(shù)的影響。
第二點(diǎn),仿旁那個(gè)只是個(gè)語法問題。VB6沒有Return語句,所以它必然有另外一種語法來表明函數(shù)的返回值。這個(gè)和函數(shù)能否返回正確的對(duì)象沒有關(guān)系,就是一種表明函數(shù)返回值的語法。
編譯器確實(shí)定義了一個(gè)和函數(shù)同名的變量,那個(gè)變量就是一個(gè)普通的局部變量,作用域就在函數(shù)的局部域里。這個(gè)變量沒什么特別的,就是編譯器會(huì)在函數(shù)結(jié)束時(shí)把這個(gè)變量的值作為函備櫻橡數(shù)的返回值返回而已。