![00110 方法和傳遞參數(shù)_ref和out的用法_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/d00364d5-8198-4e3f-969d-aedb4a8a8963/d00364d5-8198-4e3f-969d-aedb4a8a89631.gif)
![00110 方法和傳遞參數(shù)_ref和out的用法_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/d00364d5-8198-4e3f-969d-aedb4a8a8963/d00364d5-8198-4e3f-969d-aedb4a8a89632.gif)
![00110 方法和傳遞參數(shù)_ref和out的用法_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/d00364d5-8198-4e3f-969d-aedb4a8a8963/d00364d5-8198-4e3f-969d-aedb4a8a89633.gif)
![00110 方法和傳遞參數(shù)_ref和out的用法_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/d00364d5-8198-4e3f-969d-aedb4a8a8963/d00364d5-8198-4e3f-969d-aedb4a8a89634.gif)
![00110 方法和傳遞參數(shù)_ref和out的用法_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/d00364d5-8198-4e3f-969d-aedb4a8a8963/d00364d5-8198-4e3f-969d-aedb4a8a89635.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、陳利娥 博文ref和out的應(yīng)用要深刻理解ref和out的應(yīng)用,不僅從語(yǔ)法的角度,更要從面向?qū)ο蟆綩O】的角度去理解和把握。一、首先應(yīng)該真正理解“方法”方法:1、語(yǔ)法的角度:略2、OO的角度:方法是對(duì)現(xiàn)實(shí)行為或操作的一種模擬比如:學(xué)生的上課,考試,面試等行為都可以用方法來(lái)模擬,【方法包含普通方法,虛方法,抽象方法,】二、這里我們要重點(diǎn)討論方法的返回值1、有些方法不需要返回值,比如:實(shí)例1:我今天心情好,下班后去逛超市,但是不買(mǎi)任何東西實(shí)例1分析:方法構(gòu)成不需要花錢(qián)方法無(wú)參數(shù)不買(mǎi)任何東西方法無(wú)返回值實(shí)例1可以用以下方法來(lái)模擬void 逛超市()/隨意逛逛2、有些方法需要返回值也需要參數(shù),比如:實(shí)
2、例2:我今天下班后去超市買(mǎi)一箱牛奶實(shí)例2分析:方法構(gòu)成需要花*出*錢(qián)方法有參數(shù)買(mǎi)*回*一箱牛奶方法有返回值實(shí)例2可以用以下方法來(lái)模擬int 逛超市(double 錢(qián))/花*出*錢(qián) return 一箱牛奶;三、ref ,out的用法對(duì)于實(shí)例2:我今天下班后去超市買(mǎi)一箱牛奶實(shí)際我們有很多模擬的方式,如:方式1,方式2,方式3方式1:用*有*參數(shù)*有*返回值的方法來(lái)模擬,如上方法構(gòu)成需要花*出*錢(qián)方法有參數(shù),用一個(gè)參數(shù)默認(rèn)參數(shù),傳入值買(mǎi)*回*一箱牛奶方法有返回值用return返回值,傳出值方式2:用*有*參數(shù)*沒(méi)有*返回值的方法來(lái)模擬,讓函數(shù)增加一個(gè)out參數(shù),讓這個(gè)參數(shù)起到返回值的作用即傳出值。方
3、法構(gòu)成需要花*出*錢(qián)方法有參數(shù), 一個(gè)為默認(rèn)參數(shù) 傳入值 另一個(gè)為out參數(shù)傳出值買(mǎi)*回*一箱牛奶方法有返回值不用return返回值,而用out參數(shù)返回值,傳出值實(shí)例2還可以用以下方法來(lái)模擬:void 逛超市(float 錢(qián), out int 買(mǎi)的東西)/花*出*錢(qián) 買(mǎi)的東西= 一箱牛奶;方式3:方式2模擬這件事情用了兩個(gè)參數(shù),能不能少用一個(gè)參數(shù)呢。只用一個(gè)參數(shù)既起到傳入也起到傳出值的作用。OK!選用ref 參數(shù)方法構(gòu)成需要花*出*錢(qián)方法有參數(shù), 只有一個(gè)ref參數(shù)傳入值和傳出值買(mǎi)*回*一箱牛奶方法有返回值不用return返回值,而用ref參數(shù)返回值,傳出值實(shí)例2還可以用以下方法來(lái)模擬:voi
4、d 逛超市(ref double 錢(qián)_買(mǎi)的東西)/花*出*錢(qián) 錢(qián)_買(mǎi)的東西= 一箱牛奶;四、ref ,out何時(shí)用,用在哪里1、是一種可選的解決方案:做一件事情,往往有很多方法可以選擇,如果一個(gè)方法需要返回值,我們可以選擇ref或out參數(shù),如上面的例子。如果只需要方法傳出值,選out參數(shù)即可如果需要方法既傳入值也傳出值,選ref參數(shù)2、是一種最好的解決方案:比如:某人面試了一家單位,他不但想知道是否要他,還想知道要他或不要他的原因再如:連接數(shù)據(jù)庫(kù),想知道連接是否成功,如果連接不成功,還想知道不成功的原因生活中實(shí)例多如牛毛:去超市買(mǎi)東西,交給收款員貨幣,你得到的不僅是要買(mǎi)的物品,還有找零,贈(zèng)品
5、,總之,當(dāng)一個(gè)函數(shù)需要返回多種不同類(lèi)型值的時(shí)候,往往可以使用ref ,out參數(shù),如bool Con_DB_Cle(string conStr,ref string why) try / why="" return true; catch(Exception e) / why= e.ToString(); return false; 五、ref ,out用在哪里,讓我們看看類(lèi)庫(kù),類(lèi)庫(kù)用的不多啊!例子1:System.:.Uri.TryCreate 方法:.: 使用指定基和相對(duì) Uri 實(shí)例創(chuàng)建一個(gè)新的 Uri。如果成功創(chuàng)建了 Uri,則方法返回值為 true;否則為 fal
6、se。public static bool TryCreate(Uri baseUri,Uri relativeUri,out Uri result /此方法返回時(shí),包含從 baseUri 和 relativeUri 構(gòu)造的 Uri)public static bool TryCreate(string uriString,UriKind uriKind,out Uri result) 例子2:protected override bool System.Data.SqlClient.SqlDataAdapter .GetBatchedRecordsAffected(int commandId
7、entifier, out int recordsAffected, out System.Exception error)六、ref ,out的使用原則【依據(jù)VS.NET2008 msdn>.NET Framework 開(kāi)發(fā)人員指南】方法參數(shù)可以通過(guò)值,通過(guò)引用傳遞,也可以作為輸出參數(shù)傳遞。通過(guò)值傳遞參數(shù)時(shí),方法獲取調(diào)用方數(shù)據(jù)的副本,但不能改變調(diào)用方的數(shù)據(jù)副本。通過(guò)引用傳遞參數(shù)時(shí),方法獲取指向調(diào)用方數(shù)據(jù)的指針。此數(shù)據(jù)與調(diào)用方共享。如果方法對(duì)引用參數(shù)做出更改,則這些更改是對(duì)調(diào)用方的數(shù)據(jù)進(jìn)行的。使用引用參數(shù)時(shí),方法可以使用數(shù)據(jù)的初始狀態(tài)。輸出參數(shù)與引用參數(shù)類(lèi)似,不同之處在于,輸出參數(shù)以獨(dú)占
8、方式用于向調(diào)用方返回?cái)?shù)據(jù),而引用參數(shù)可用于將數(shù)據(jù)傳入方法,也可用于從方法中接收數(shù)據(jù)。 避免使用輸出參數(shù)或引用參數(shù)。使用定義輸出參數(shù)或引用參數(shù)的成員需要開(kāi)發(fā)人員理解指針、值類(lèi)型和引用類(lèi)型之間的細(xì)微差別以及輸出參數(shù)和引用參數(shù)之間的初始化差異。不要通過(guò)引用傳遞引用類(lèi)型。通過(guò)引用傳遞一個(gè)對(duì)象使方法能夠用不同的實(shí)例替換該對(duì)象。在大多數(shù)情況下,方法應(yīng)使用提供的對(duì)象,而不應(yīng)將其替換。對(duì)于此規(guī)則,有一些少量的例外(例如,可用于交換引用的方法)。 部分版權(quán)所有 2005 Microsoft Corporation。保留所有權(quán)利。 部分版權(quán)所有 Addison-Wesley Corporation。保留所有權(quán)利。 有關(guān)設(shè)計(jì)指南的更多信息,請(qǐng)參見(jiàn) Krzysztof Cwalina 和 Brad Abrams 編著、Addison-Wesley 于 2005 年出版的“Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries”(框架設(shè)計(jì)指南:可重用 .NET 庫(kù)的約定、術(shù)語(yǔ)和模式)。七、ref ,out的區(qū)別?經(jīng)典面試題ref ,out的區(qū)別?簡(jiǎn)記1作用ref參數(shù)既可以由方法調(diào)用端向方法傳入值,也可以由方法向方法調(diào)用端
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三農(nóng)行業(yè)培訓(xùn)教程與作業(yè)指導(dǎo)書(shū)
- 2025年中國(guó)立體車(chē)庫(kù)減速電機(jī)行業(yè)發(fā)展前景及投資戰(zhàn)略咨詢(xún)報(bào)告
- 農(nóng)村網(wǎng)店轉(zhuǎn)讓合同范本
- 公司經(jīng)紀(jì)合同范本
- 農(nóng)村電力合同范例
- 出版教輔材料合同范本
- sm公司合同范例
- 養(yǎng)獵養(yǎng)殖合同范例
- 2025年度建筑工程項(xiàng)目環(huán)保驗(yàn)收合同
- 醫(yī)療管理聘用合同范例
- 2025年1月浙江省高考政治試卷(含答案)
- 教體局校車(chē)安全管理培訓(xùn)
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢測(cè)綜合物理試題(含答案)
- 行車(chē)起重作業(yè)風(fēng)險(xiǎn)分析及管控措施
- 健康體檢中心患者身份登記制度
- 《災(zāi)害的概述》課件
- 國(guó)產(chǎn)氟塑料流體控制件生產(chǎn)企業(yè)
- 空氣能安裝合同
- 初二上冊(cè)的數(shù)學(xué)試卷
- 2025年上半年重慶三峽融資擔(dān)保集團(tuán)股份限公司招聘6人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 四大名繡課件-高一上學(xué)期中華傳統(tǒng)文化主題班會(huì)
評(píng)論
0/150
提交評(píng)論