out引數和ref引數的區別

2021-05-25 20:29:08 字數 540 閱讀 5194

out和ref都是在引數傳遞時,傳遞變數的引用。用於希望方法中多個變數值更改後,在方法呼叫後保留更改的值。

當乙個方法需要多個返回值時,靠方法返回值就不能勝任,幸好.net有out和ref關鍵字。

比如:登入方法,登入結果有成功和失敗,但是如果失敗還要知道原因僅靠返回值就不行了,這個就可以用out和ref

bool login(string name,string password,ref|out string errmsg)

out方法引數傳遞前可以不賦值,但是方法中必須先賦值後使用;

ref方法引數傳遞前必須賦值,方法中可以直接使用。

out側重輸出(方法傳遞前,不知道值,呼叫方法後獲得值),ref側重更改(呼叫方法前就有明確的值,方法中發生更改)。

那麼剛才登陸的例子到底用ref還是out呢?這樣分析:如果成功是不需要errmsg的,如果失敗呼叫前errmsg的實參是不需要賦值的,所以應該側重於輸出,使用out比較合適。

bool login(string name,string password,out string errmsg)

ref引數和out引數

引數對於每個學習程式設計的人都很清楚,在任何程式中都不可能沒有引數,下面我就說說乙個特殊的引數型別,其實這個也不算什麼特殊引數了,在c 中已經沒有像c中那樣的指標的概念了,但是有的時候有些時候要寫特殊的處理,其實c 中並不是完完全全放棄這個概念的,下面就寫下這類特殊的引數。引用引數ref 當乙個引數...

C 之ref引數和out引數的區別

1 什麼是 ref 引數 2 什麼是 out 引數?1 使用 ref 引數時,傳入的引數必須先被初始化。對 out 引數而言,必須在方法中對其完成初始化。2 使用 ref 和 out 時,在方法的引數和執行方法時,都要加 ref 或 out 關鍵字,以滿足匹配。3 out 適合用在需要 return...

C 的out引數和ref引數

剛學c 的時候看過out引數和ref引數的用法,但是一直沒有根據實際專案做過。今天寫webservice介面的時候用到了 本來我是寫乙個方法查詢乙個資料庫,返回乙個dataset給別人呼叫,沒問題,完成了 我的上篇部落格寫有 但是專案總是變化 的,有人要求同時將dataset的總記錄條數也返回給他們...