参数修饰符 params、 out、ref

时间:2021-01-16 03:37:02
///   <summary>
///  参数修饰符 params、 out、ref
///   </summary>
using System;

namespace ConDemo
{
     class MainClass
    {
         static  double Average( params  double[] values)
        {
             double average =  0;
             foreach ( var item  in values) {
                average+=item;
            }
            average = average / values.Length;
             return average;
        }

         public  static  void Add( int x,  int y,  out  int ans)
        {
            ans = x + y;
        }

         static  void switchIt( ref  int x1,  ref  int x2)
        {
             int x = x1;
            x1 = x2;
            x2 = x;
        }

         ///   <summary>
        
///  The entry point of the program, where the program control starts and ends.
        
///   </summary>
        
///   <param name="args"> The command-line arguments. </param>
         public  static  void Main ( string[] args)
        {
            Console.WriteLine (Environment.Version);     // 4.0.30319.1
             int ans =  0;
            Add ( 56,   out ans);             // out parameters
            Console.WriteLine (ans);                                             // 11
             int x =  3, y =  4;
            switchIt ( ref x,  ref y);             // ref parameters
            Console.WriteLine ( " x={0},y={1} ", x, y);             // x=4,y=3
            Console.WriteLine ( " {0} ", Average ( 3.0, 4.0, 5.0)); // 4

             int i= 99;
             object obj = i;                     // box
            obj =  8888;                             // box,  with strong Type!
            Console.WriteLine( " i={0} ",i); // i=99
             string s =  " hello,world. ";
             object objs = s;                     // with strong Type!
            objs =  " Bonjour! ";
            Console.WriteLine(s);     // hello,world.
            Console.ReadKey();
            Console.ReadKey ();
        }
    }
}