程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#中的Out, params,ref 細說並沉澱

c#中的Out, params,ref 細說並沉澱

編輯:C#入門知識

1. Out,params,ref之前先記錄平時用的最多的按值傳遞參數的情況,當然默認情況下參數傳入函數的默認行為也是按值傳遞的。

   1:          //默認情況下參數會按照值傳遞
   2:          static int add(int x,int y) {
   3:              int ans = x + y;
   4:              x = 1000; y = 2000;
   5:              return ans;
   6:          }
 
   1:     static void Main(string[] args) {
   2:              Console.WriteLine("默認情況下按值傳遞");
   3:              int x = 3, y = 8;
   4:              Console.WriteLine("調用前:x:{0},y:{1}",x,y);
   5:              Console.WriteLine("調用後的結果:{0}",add(x,y));
   6:              Console.WriteLine("調用後:x:{0},y:{1}",x,y);
   7:              Console.ReadLine();
   8:          }

  輸出的結果跟我們預期的一樣:

     2009-12-13 22-05-36

  2.Out修飾符

   1:    static void add(int x,int y,out int ans) {
   2:              ans = x + y;
   3:          }

 

  Main裡面可以這麼寫:

   1:   int ans;
   2:   add(20, 20, out ans);
   3:   Console.WriteLine("20+20={0}", ans);
   4:   Console.ReadLine();

   輸出的結果當然是:20+20=40啦,這個在原來如果沒有用out的話那會出現“使用了未賦值的局部變量”。

   那即使我們給ans賦值如:int ans=10;

   它在調用add方法之後也不會改變,因為調用的方法根本不知道裡面發生了什麼。

   這樣就變成了20+20=10了,顯然是錯的。

   當然Out的最大的亮點,就是在一個函數調用之後可以輸出多個參數值。

   將上面的方法改為:

   1:     static void setParams(out int x,out string y,out bool ans) {
   2:              x = 2;
   3:              y = "YeanJay";
   4:              ans = true;
   5:          }

我們在Main裡面可以這麼寫:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved