C返回局部變量的值也沒問題啊

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設計、網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務丹鳳,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
只是如果這個局部變量是指向棧上的內(nèi)存的指針,由于函數(shù)結束后活動棧被清空,會導致指針失效。
VB.NET不支持指針語法,它不可能返回指向棧上的指針,所以用不著擔心這個問題。
你的理解
第一點理解是正確的,不過和這個問題關系不大。因為引用類型本來就不是分配在棧上的,它當然就不受函數(shù)的影響。
第二點,那個只是個語法問題。VB6沒有Return語句,所以它必然有另外一種語法來表明函數(shù)的返回值。這個和函數(shù)能否返回正確的對象沒有關系,就是一種表明函數(shù)返回值的語法。
編譯器確實定義了一個和函數(shù)同名的變量,那個變量就是一個普通的局部變量,作用域就在函數(shù)的局部域里。這個變量沒什么特別的,就是編譯器會在函數(shù)結束時把這個變量的值作為函數(shù)的返回值返回而已。
.Net的所有類型都是從System.Object派生而來的,所以將函數(shù)直接定義成
Function Prior() As Object 即可
不過在返回之后,調(diào)用此函數(shù)的代碼要注意驗證返回值的有效性
一個比較簡單的方法是返回DataTable,代碼如下:
public Boolean SearchBySQL(string SQL, DataTable myData)
{
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
try
{
myConn.Open();
try
{
SqlCommand myComm = new SqlCommand(SQL, myConn);
SqlDataAdapter mySDA = new SqlDataAdapter();
mySDA.SelectCommand = myComm;
mySDA.Fill(myData);
return true;
}
catch (Exception ex)
{
return false;
}
}
catch (Exception ex)
{
return false;
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
}
}
}
其中ConnectionString是Web.config里的連接字符串
還有一種方法是寫存儲過程返回所需參數(shù)
1、我有一個function,如下:
function b()
'...
return "abc"
end function
2、調(diào)用時,這樣子用:
Response.write(b());
3、運行結果:
abc
你的?sub過程這個是子過程,無返回值的,這里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
分享標題:vb.net程序返回值,vb函數(shù)返回值是什么意思
文章網(wǎng)址:http://chinadenli.net/article31/dsiiesd.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、云服務器、網(wǎng)站導航、品牌網(wǎng)站建設、微信公眾號、網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)