C#中方法中 ref 和 out的使用


案例1:

 static void Main()
        {
            int[] ary = { 12, 13, 103, 10003 };
            int numLargerThan10,numLargerThan100,numLargerThan1000 ;
            Proc(ary, out numLargerThan10, out numLargerThan100, out numLargerThan1000);
            Console.WriteLine("有{0}個數大於10,有{1}個數大於100,有{2}個數大於1000",numLargerThan10,numLargerThan100,numLargerThan1000);
            Console.Read();
        }
 
        static void Proc(int[] ary, out int numLargerThan10, out int numLargerThan100, out int numLargerThan1000)
        {
            numLargerThan10 = 0;
            numLargerThan100 = 0;
            numLargerThan1000 = 0;
            foreach (var a in ary)
            {
                if (a > 1000)
                    numLargerThan1000++;
                else if (a > 100)
                    numLargerThan100++;
                else if (a > 10)
                    numLargerThan10++;
            }
        }

輸出結果:
有2個數大於10,有1個數大於100,有1個數大於1000

 

 

案例2:

class Program   
   {   
       //使用out后必須對變量賦值   
       public void TestOut(out int x, out int y)   
       {   
           x = 1;   
           y = 2;   
       }   
       //此時傳進來的值分別為x1:10,y1:11,輸出之后的x1的值為2   
   
       public void TestRef(ref int x, ref int y)   
       {   
           //引用剪剪那句話傳進來的是豬,出來的可能是頭牛(很精辟!)   
           x = 2;   
               
       }   
       static void Main(string[] args)   
       {   
           int x;   
           int y;   
           Program P1 = new Program();   
           P1.TestOut(out x,out y);   
           Console.WriteLine("x={0},y={1}", x, y);   
           //在使用之前ref必須對變量賦值   
           int x1 = 10;   
           int Y1 = 11;   
           P1.TestRef(ref x1,ref Y1);   
           Console.WriteLine("x1={0},y1={1}", x1, Y1);   
       }   
   }  

輸出結果:

x=1,y=2
x1=2,y1=11

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM