zoukankan      html  css  js  c++  java
  • Params, In, Out

     You can get the difference between the" Params and  in or  Out  from debug the code. 
     
    using System;
    
    namespace TestIP
    {
        class gump
        {
            #region using ref
    
            public double square(ref double x)
            {
                x = x * x;
                return x;
            }
    
            public void math_routines(double x, out double half, out double square, out double cube)
            {
                half = x / 2;
                square = x * x;
                cube = x * x * x;
            }
    
            #endregion
    
            #region using params
    
            public  void UseParams(params int[] list)
            {
                string temp = "";
                for (int i = 0; i < list.Length; i++)
                {
                    temp = temp + " " + list[i].ToString();
                    Console.WriteLine(temp);
                }
            }
    
            public void UseParams2(params object[] list) 
            { 
                string temp = ""; 
                for (int i = 0; i < list.Length; i++) 
                {
                    temp = temp + " " + list[i].ToString(); 
                }
                Console.WriteLine(temp);
            }
    
            #endregion
        }
    
        class refoutdemo
        {
            public static void Main()
            {
    
                gump doit = new gump();
    
                #region test params
    
                doit.UseParams(1, 2, 3);//看参数是3个 
                doit.UseParams(1, 2); //看参数是2个,可变吧 
                doit.UseParams2(1, 'a', "test"); 
                int[] myarray = new int[3] { 10, 11, 12 }; 
                doit.UseParams(myarray); //看也可以是容器类,可变吧:) 
    
    
                #endregion
    
                #region test ref
    
                double x1=600;
                double half1=0;
                double squared1=0;
                double cubed1=0;
    
                Console.WriteLine("Before method->x1={0}",x1);
                Console.WriteLine("half1={0}",half1); 
                Console.WriteLine("squared1={0}",squared1);
                Console.WriteLine("cubed1={0}",cubed1);
    
                doit.math_routines(x1,out half1,out squared1,out cubed1);
                
                Console.WriteLine("After method->x1={0}",x1);
                Console.WriteLine("half1={0}",half1);
                Console.WriteLine("squared1={0}",squared1);
                Console.WriteLine("cubed1={0}",cubed1);
    
                #endregion
    
                #region test out
    
                double a = 3;
                double b = 0;
    
                Console.WriteLine("Before squere -> a={0}, b ={1}", a, b);
    
                b = doit.square(ref a);
                Console.WriteLine("Before squere -> a={0}, b ={1}", a, b);
                Console.WriteLine();
    
                #endregion
            }
        }
    }
    
    Reference from others. 
  • 相关阅读:
    前端学习 -- Css -- 盒子模式
    前端学习 -- Css -- 文本样式
    Shell脚本学习
    前端学习 -- Css -- 行间距
    前端学习 -- Css -- 字体的几个属性学习
    前端学习 -- Css -- 字体分类
    前端学习 -- Css -- 字体
    前端学习 -- 颜色
    前端学习 -- 长度单位
    前端学习 -- Css -- 定义列表
  • 原文地址:https://www.cnblogs.com/tianjinquan/p/2113302.html
Copyright © 2011-2022 走看看