乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C#中方法的參數(shù)

       華燈初放l 2015-04-29

      ·             C#中方法的參數(shù)有四種類型

              1. 值參數(shù)         (不加任何修飾符,是默認(rèn)的類型)
         2. 引用型參數(shù)  (ref 修飾符聲明)
         3. 輸出參數(shù)    (out 修飾符聲明)
         4. 數(shù)組型參數(shù)  (params 修飾符聲明)

      1.  值傳遞:

             值類型是方法默認(rèn)的參數(shù)類型,采用的是值拷貝的方式。也就是說,如果使用的是值類型,則可以在方法中更改該值,
       
      但當(dāng)回調(diào)方法時,不會保留更改的值。

      復(fù)制代碼
             static void ChangeValue(int x, int y)
             {
                 
      int temp = x;
                 x 
      = y;
                 y 
      = temp;
             }

              
      static void Main(string[] args)
              {
                  
      int i = 1, j = 2;
                  ChangeValue(i, j);
                  Console.WriteLine(
      "i = {0}, j = {1}", i, j);
                  Console.Read();
              }
      /*
      *
      輸出結(jié)果為: i=1, j=2
      * 未能實現(xiàn)ChangeValue()計劃的功能,因為控制權(quán)傳遞回調(diào)用方法時不保留更改的值
      */
      復(fù)制代碼


       2.   引用傳遞(ref類型)
      ref關(guān)鍵字使參數(shù)按引用傳遞,若要使用 ref 參數(shù),必須將參數(shù)作為 ref 參數(shù)顯式傳遞到方法,ref 參數(shù)的值被傳遞到 ref 參數(shù)。
      其效果是,
      當(dāng)控制權(quán)傳遞回調(diào)用方法時,在方法中對參數(shù)所做的任何更改都將反映在該變量中。
      2.1. 若要使用 ref 參數(shù),則方法定義和調(diào)用方法都必須顯式使用 ref關(guān)鍵字。
      2.2. 傳遞到 ref 參數(shù)的參數(shù)必須最先初始化。這與 out 不同,out 的參數(shù)在傳遞之前不需要顯式初始化。
      2.3. 如果一個方法采用 ref out 參數(shù),而另一個方法不采用這兩類參數(shù),則可以進行重載。

      復(fù)制代碼
             static void ChangeValue(ref int x,ref int y)
             {
                 
      int temp = x;
                 x 
      = y;
                 y 
      = temp;
             }

              
      static void Main(string[] args)
              {
                  
      int i = 1, j = 2;
                  ChangeValue(
      ref i,ref j);
                  Console.WriteLine(
      "i = {0}, j = {1}", i, j);
                  Console.Read();
              }
      /*
      *
      引用類型實現(xiàn)了ChangeValue()計劃的功能:
      * 輸出為:
      * i = 2, j =1
      */
      復(fù)制代碼

       

      3.   輸出類型(out類型)
      out 關(guān)鍵字會導(dǎo)致參數(shù)通過引用來傳遞。這與 ref 關(guān)鍵字類似。
      若要使用 out 參數(shù),必須將參數(shù)作為 out 參數(shù)顯式傳遞到方法,out 參數(shù)的值不會傳遞到 out 參數(shù)。

      其效果是,當(dāng)控制權(quán)傳遞回調(diào)用方法時,在方法中對參數(shù)所做的任何更改都將反映在該變量中。

      3.1. ref 要求變量必須在傳遞之前進行初始化,out 參數(shù)傳遞的變量不需要在傳遞之前進行初始化。

      3.2. 盡管作為out 參數(shù)傳遞的變量不需要在傳遞之前進行初始化,但需要在調(diào)用方法初始化以便在方法返回之前賦值。
      out適合用在需要retrun多個返回值的地方,而ref則用在需要被調(diào)用的方法修改調(diào)用者的引用的時候。

      當(dāng)希望方法返回多個值時,聲明 out 方法非常有用。使用 out 參數(shù)的方法仍然可以返回一個值。一個方法可以有一個以上的 out 參數(shù)。

      復(fù)制代碼
       static void ChangeValue(out int x,out int y)
             {
                 
      //在這里進行了i和j的初始化
                 x = 1;
                 y = 2;

                 
      int temp = x;
                 x = y;
                 y = temp;
             }

              
      static void Main(string[] args)
              {
                  
      //此處不進行i和j的賦值
                  int i , j;   //那么若是給i,j再次賦值后(int=3,j=4),結(jié)果為什么呢?
                  ChangeValue(out i,out j);
                  Console.WriteLine("i = {0}, j = {1}", i, j);
                  Console.Read();
              }
      /*
      * 輸出類型也實現(xiàn)了ChangeValue()計劃的功能:
      * 輸出為:
      * i = 2, j =1
      * 即使給i,j初始化,結(jié)果還是i=2,j=1
      */
      復(fù)制代碼

       

      4.   數(shù)組型參數(shù)類型(params類型)

      params關(guān)鍵字可以指定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù)。也就是說。使用params可以自動把你傳入的值按照規(guī)則轉(zhuǎn)換為一個新建的數(shù)組。
      在方法聲明中的 params關(guān)鍵字之后不允許任何其他參數(shù),并且在方法聲明中只允許一個 params關(guān)鍵字。

      復(fù)制代碼
             public static void UseParams(params object[] list)
             {
                 
      for (int i = 0; i < list.Length; i++)
                 {
                     Console.WriteLine(list[i]);
                 }
             }

              
      static void Main(string[] args)
              {
                  
      // 一般做法是先構(gòu)造一個對象數(shù)組,然后將此數(shù)組作為方法的參數(shù)
                  object[] arr = new object[3] { 500'3'"Test" };
                  UseParams(arr);

                  
      // 而使用了params修飾方法參數(shù)后,我們可以直接使用一組對象作為參數(shù)
                  
      // 當(dāng)然這組參數(shù)需要符合調(diào)用的方法對參數(shù)的要求
                  UseParams(500'3'"Test");

                  Console.Read();
              }
      /*
      * 輸出為:
      *500
      *3
      *Test
      *500
      *3
      *Test
      */
      復(fù)制代碼


       

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多