



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C# 值類型和引用類型及參數(shù)傳遞值類型和引用類型:C#數(shù)據(jù)類型分為兩大類:值類型和引用類型。值類型數(shù)據(jù)主要有:結(jié)構(gòu)體struct,枚舉體enum,布爾型bool,浮點型,整型。引用類型數(shù)據(jù)主要有:數(shù)組,字符串,接口,委托,類。值類型和引用類型的區(qū)別:引用類型繼承自System.Object,值類型繼承自System.ValueType。引用類型保存到內(nèi)存的堆heap中,值類型保存在內(nèi)存的堆棧stack中。在.net中,棧的內(nèi)存是自動釋放的,而堆會有垃圾回收器GC來釋放。引用類型可以派生出新的類型,而值類型不可以。引用類型可以包含null值,而值類型不可以。引用類型變量賦值只復(fù)制對象的引用,不復(fù)制對象本身。而將一個值類型變量賦給另一個值類型變量時,將復(fù)制包含的值。下面一個小例子可以簡單說明值類型和引用類型:class PointR public int x, y; struct PointV public int a, b; class Program static void Main(string args) /給一個引用類型賦值將復(fù)制到一個對象的引用,而給一個值類型賦值將復(fù)制一個對象的值 PointR r; PointV v; r = new PointR(); v = new PointV(); r.x = 7; v.a = 7; PointR pr = r; PointV pv = v; pr.x = 9; pv.a = 9; Console.WriteLine(r.x);/9 Console.WriteLine(v.a);/7 Console.Read(); C#參數(shù)傳遞:.net默認的是通過值傳送變量,但是也可以迫使值參數(shù)通過引用傳送給方法。C#要求對傳遞給方法的參數(shù)進行初始化。在傳遞給方法之前,無論時按值 傳遞,還是按引用傳遞,變量都必須初始化。 ref關(guān)鍵字:可以迫使值參數(shù)通過引用傳送給方法。即:在.net中,如果把一個參數(shù)傳遞給方法,且這個方法的輸入?yún)?shù)前帶有ref關(guān)鍵字,則該方法對變 量所做的任何改變都會影響原來對象的值。下面一個小例子說明按值傳遞和ref參數(shù)傳遞:class Program /默認值,C#的參數(shù)是按值傳遞的,這也是最常見的情況 static void Method1(int p) +p; /為了按引用傳遞,C#提供了參數(shù)修飾字ref,。ref修飾字要求變量在傳遞給方法之前必須賦值 static void Method2(ref int p) +p; static void Main(string args) int x = 9; int y = 9; Method1(x); Method2(ref y); Console.WriteLine(x);/9 Console.WriteLine(y);/10 Console.Read(); 在方法的輸入?yún)?shù)前面加上out關(guān)鍵字時,傳遞給該方法的變量可以不初始化。該變量通過引用傳遞,所以在從被調(diào)用的方法中返回時,方法對該變量進行 的任何改變都會保留下來。在調(diào)用該方法時,還需要使用out關(guān)鍵字,這與在定義該方法時一樣。并且out修飾字要求變量在從方法返回時必須賦值。舉例說 明:class Program /out修飾字要求變量在從方法返回時必須賦值 static void Split(string name, out string firstName, out string lastName) int i = name.LastIndexOf( ); firstName = name.Substring(0, i); lastName = name.Substring(i + 1); static void Main(string args) string a, b; Split(zhou enlai, out a, out b); Console.WriteLine(0+ 1, a, b);/zhou+ erlai Console.Read(); 還有一個params修飾傳遞參數(shù),示例:class Program /params 修飾字可以使用在方法的最后一個參數(shù)上,這樣方法就可以接受任意數(shù)目的某種類型的參數(shù) static int Add(params int arr) int sum = 0; foreach (int i in arr) sum += i; return sum; static void Main(string
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年金融理財工作報告
- 2024年鹽源縣縣屬國有企業(yè)招聘真題
- 工程模板租賃合同范本
- 2024年南陽市市屬事業(yè)單位考試真題
- 2024年遼寧省省屬事業(yè)單位考試真題
- 2024年河南省駐馬店財經(jīng)學(xué)校招聘真題
- 2024年廣安市華鎣市人民醫(yī)院招聘真題
- 楊梅山抵押合同范本
- 離婚協(xié)議正版用幾號字體的(2025年版)
- 工地監(jiān)控定購合同范本
- GB/T 19879-2023建筑結(jié)構(gòu)用鋼板
- 駕駛員滿意度調(diào)查表
- 2學(xué)術(shù)性評價意見
- 差積、累積曲線模板
- 汽車二級維護進廠及過程檢驗單參考模板范本
- 安徽省天然氣開發(fā)股份有限公司天然氣蕪銅支線戴店幼兒園段遷改工程項目環(huán)境影響報告書
- 敘事護理學(xué)智慧樹知到答案章節(jié)測試2023年中國人民解放軍海軍軍醫(yī)大學(xué)
- 汽車涂裝技術(shù)(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院)智慧樹知到答案章節(jié)測試2023年
- 受迫振動與共振實驗課件
- 2023年中考中考語文專題復(fù)習(xí):關(guān)聯(lián)詞 專項練習(xí)題(含答案解析)
- YS/T 248.1-2007粗鉛化學(xué)分析方法 鉛量的測定 Na2 EDTA滴定法
評論
0/150
提交評論