C#forUnity快速入門(連載9)-C#值類型與引用類型-創(chuàng)新互聯(lián)

C# for Unity 編程語言快速入門教程(連載9)_C#OOP編程之值類型與引用類型

創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元大安做網(wǎng)站,已為上家服務(wù),為大安各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

   C#編程語言中有“值類型”與“引用類型”之分。講這個概念之前,先說明一下什么是“形式參數(shù)”(簡稱:“形參”),什么是“實際參數(shù)”(簡稱“實參”)。

 “形參”("形式參數(shù)"): C#方法中的參數(shù)列表,即可以稱為“形式參數(shù)",因為在程序運行之前,我們是不能知道具體的參數(shù)到底是什么。

  "實參"("實際參數(shù)"): 給C#定義的帶參方法,進(jìn)行實際賦值的代碼數(shù)值,稱為“實參”。因為我們可以知道或者估計實際運行過程中參數(shù)的數(shù)值類型與數(shù)值多少。

  知道以上概念后,我們再來說明“值傳遞”與“引用傳遞”

   所謂值傳遞是指: “實參”傳遞給“形參”為本身的一個拷貝副本。
   所謂引用傳遞指: “實參”傳遞給“形參”為本身的“地址”作為數(shù)值給形參。

  軟件編程中正確理解值傳遞與引用傳遞,對設(shè)計優(yōu)秀軟件有重要作用。
  關(guān)于本節(jié)知識點,我們總結(jié)如下規(guī)則:

    規(guī)則1: 基本數(shù)據(jù)類型(int,float ,double,char),都是值傳遞。
    規(guī)則2: 類的實例化對象與數(shù)組都是“引用”傳遞。
    規(guī)則3: ref (輸入輸出)關(guān)鍵字可以把基本數(shù)據(jù)類型的值傳遞,改為“引用傳遞”。
    規(guī)則4: 字符串不是基本數(shù)據(jù)類型,但是它默認(rèn)也是“值傳遞”,當(dāng)然可以通過ref 變?yōu)橐脗鬟f。

   一般我們學(xué)習(xí)本節(jié),還會增加一個常用關(guān)鍵字:out 。 這個關(guān)鍵字定義方法的參數(shù)為“輸出參數(shù)”,使得一個方法,具備多個輸出參數(shù)。(否則只能用方法的返回類型,做唯一的返回類型)。

  為了更好的理解C#的“形參”與“實參”,筆者提供如下習(xí)題,供C#初學(xué)者進(jìn)行研究學(xué)習(xí),不明之處,歡迎留言討論!

   //習(xí)題: 學(xué)習(xí)面向?qū)ο缶幊蹋?值類型與引用類型

  class Program
   {

       //值類型
       public void AddNumber(int num1) //num1 稱為 “形參”
       {
           num1 = num1 + 100;
       }

       //引用類型
       public void AddNumberWithRef(ref int num1)
       {
           num1 = num1 + 100;
       }

       //引用類型(傳遞)
       public void AddNumberByArray(int[] intArray)
       {
           intArray[0] = intArray[0] + 100;
       }

       //引用傳遞(對象類型)
       public void AddNumberByPerson(Person per)
       {
           per.IntHeight = 200;
           per.strName = "李四";
       }

       //字符串傳遞
       public void AddNumberByString(ref string str)
       {
           str = str + "大家好!";
       }

       //演示out 關(guān)鍵字的作用
       public void ComputNumber(int intNum1,int intNum2,out int intAddResult,out int intSubResult)
       {
           intAddResult = intNum1 + intNum2;
           intSubResult = intNum1 - intNum2;
       }

       static void Main1(string[] args)
       {
           //Person perObj = new Person();

           Program obj = new Program();
           //int intTestNum = 10;
           //int[] intArray = new int[1];
           //intArray[0] = 20;
           //string strTest = "同學(xué)們";

           //"值傳遞" 測試,傳遞的是“復(fù)制品”
           //obj.AddNumber(intTestNum); //intTestNum 稱為“實參” ,結(jié)果是:10

           //"引用數(shù)據(jù)傳遞"測試。
           //obj.AddNumberWithRef(ref intTestNum);//結(jié)果為: 110.
           //obj.AddNumberByArray(intArray); //結(jié)果為: 120;

           //“對象”數(shù)據(jù)傳遞
           //obj.AddNumberByPerson(perObj);

           //字符串的傳遞測試
           //obj.AddNumberByString(ref strTest);

           //演示out 關(guān)鍵字作用
           int intAddResult = 0;
           int intSubResult = 0;
           obj.ComputNumber(10, 20, out intAddResult, out intSubResult);
           //顯示結(jié)果
           Console.WriteLine("10+20={0},10-20={1}",intAddResult,intSubResult);
       }
   }

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:C#forUnity快速入門(連載9)-C#值類型與引用類型-創(chuàng)新互聯(lián)
標(biāo)題URL:http://muchs.cn/article14/cdcede.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)定制網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站排名、外貿(mào)建站、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)