自-C#中的指針ref和out_第1頁
自-C#中的指針ref和out_第2頁
自-C#中的指針ref和out_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、若需要在兩個(gè)窗體間實(shí)現(xiàn)參數(shù)的引用傳遞。那么可以設(shè)計(jì)一個(gè)label控件,然后將它設(shè)置為v i sib 1 e ,最后將此lab e l控件設(shè)置為public這樣就可以將I a b el作為一個(gè)公用緩沖區(qū),如此也就實(shí)現(xiàn)了引用傳遞的功能。當(dāng)然如果是一個(gè)類方法間的引用傳遞可以使用ref和out也就實(shí)現(xiàn)了 C指針的作用C #參考之方法參數(shù)關(guān)鍵字:p a ram s、re f及o ut如果在為方法聲明參數(shù)時(shí)未使用ref 或out,則該參數(shù)可以具有關(guān)聯(lián)的值??梢栽诜椒ㄖ懈脑撝?但當(dāng)控制傳遞回調(diào)用過程時(shí),不會(huì)保留更改的值。通過使用方法參數(shù)關(guān)鍵字,可以更改這種行為。par am sp a rams關(guān)鍵字可以指

2、定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù)。1. 在方法聲明中的 par a ms關(guān)鍵字之后不允許任何其他參數(shù),并且在方法聲明中只允許一個(gè)pa r a m s關(guān)鍵字。示例:字面意思比較難懂,所以看示例很有用/ ke yw ords p arams.csus in g Syst em; cl ? as s A p p ?public s tatic voi d UsePar a ms( params obje c t li st )fo? ?r ( i nt i = 0; i <1 ist . Length; i + +)年?Co ns o le.Wr i teLi n e (lis t i )

3、; ? ? ?static void M ai n() ?/ / 一般做法是先構(gòu)造一個(gè)對(duì)象數(shù)組,然后將此數(shù)組作為方法的參數(shù)object 門 ar r = n ew obje c t 3 100, 'a' , "keywords 11 ; UseP?a r a m s(arr);?1/而使用了 p a rams修飾方法參數(shù)后,我們可以直接使用一組對(duì)象作為參數(shù)/當(dāng)然這組參數(shù)需要符合調(diào)用的方法對(duì)參數(shù)的要求Us eParams (100 , 'a' , " k eywo r ds"); Co? n sole . Rea d (); ?f L

4、refre f關(guān)鍵字使參數(shù)按引用傳遞。其效果是,當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。1. 若要使用ref參數(shù),則方法定義和調(diào)用方法都必須顯式使用r e f關(guān)鍵字。2. 傳遞到re f參數(shù)的參數(shù)必須最先初始化。這與out不同,o ut 的參數(shù)在傳遞之前不需要顯式初始化。3. 屬性不是變量,因此不能作為ref參數(shù)傳遞。4. 盡管 r ef 和ou t在運(yùn)行時(shí)的處理方式不同,但它們在編譯時(shí)的處理方式是相同的。因此,如果一個(gè)方法采用 re f參數(shù),而另一個(gè)方法采用 ou t參數(shù),則無法重載這 兩個(gè)方法。例如,從編譯的角度來看, 以下代碼中的兩個(gè)方法是完全相同的。如

5、果嘗試這么做,將導(dǎo)致不能編譯該代碼。5. 如果一個(gè)方法采用re f 或。ut 參數(shù),而另一個(gè)方法不采用這兩類參數(shù),則可以進(jìn)行重載。示例:按引用傳遞值類型是有用的,但是re f對(duì)于傳遞引用類型也是很有用的。這允許被調(diào)用的方法修改該引用所引用的對(duì)象,因?yàn)橐帽旧硎前匆脕韨鬟f的。o utr e f關(guān)鍵字類似。out關(guān)鍵字會(huì)導(dǎo)致參數(shù)通過引用來傳遞。這與與ref的不同之處:1. ref要求變量必須在傳遞之前進(jìn)行初始化。2. 盡管作為o u t參數(shù)傳遞的變量不需要在傳遞之前進(jìn)行初始化,但需要調(diào)用方法以便在方法返回之前賦值。示例:與r ef示例不同的地方只要將re f改為 out,然后變量i僅需要聲明即可

6、。1. ref關(guān)鍵字使參數(shù)按引用傳遞。作用:當(dāng)控制權(quán)傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。若要使用r ef參數(shù),則方法定義和調(diào)用方法都必須顯式使用re f關(guān)鍵字。傳遞到r e f參數(shù)的參數(shù)必須最先初始化。這與ou t 不同,out的參數(shù)在傳遞之前不需要顯式初始化。2. 盡管ref和 out在運(yùn)行時(shí)的處理方式不同,但它們在編譯時(shí)的處理方式是相同的。因此,如果一個(gè)方法采用ref參數(shù),而另一個(gè)方法采用o ut參數(shù),則無法重載這兩個(gè)方法。public void T e st( r e f in t v a 1) pu bl ic voi d Test (out int val) 如果一個(gè)方法采用re f或o ut 參數(shù),而另一個(gè)方法不采用這兩類參數(shù),則可以進(jìn)行重載。publ i c vo i d Te st ( r ef / o u t int val) publi c voidT e st (int val) 3. out 關(guān)鍵字會(huì)導(dǎo)致參數(shù)通過引用來傳遞。這與r e f關(guān)鍵字類似,不同之處在于 ref要求變量必須在傳遞之前進(jìn)行初始化。若要使用o ut參數(shù),方法定義和調(diào)用方法都必須顯式使用o ut關(guān)鍵字。4. 當(dāng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論