zoukankan      html  css  js  c++  java
  • Specify a Method Parameter Takes a Variable Number of Arguments

    I've met a serious problem that I wanted to pass a variable number of parameters to a method, and I used to use the List<T> to implement it. However, I found it so complex.

    I've searched about it and found the way to solve it.

    public class MyClass
    {
        public static void UseParams(params int[] list)
        {
            for (int i = 0; i < list.Length; i++)
            {
                Console.Write(list[i] + " ");
            }
            Console.WriteLine();
        }
    
        public static void UseParams2(params object[] list)
        {
            for (int i = 0; i < list.Length; i++)
            {
                Console.Write(list[i] + " ");
            }
            Console.WriteLine();
        }
    
        static void Main()
        {
            // You can send a comma-separated list of arguments of the  
            // specified type.
            UseParams(1, 2, 3, 4);
            UseParams2(1, 'a', "test");
    
            // A params parameter accepts zero or more arguments. 
            // The following calling statement displays only a blank line.
            UseParams2();
    
            // An array argument can be passed, as long as the array 
            // type matches the parameter type of the method being called. 
            int[] myIntArray = { 5, 6, 7, 8, 9 };
            UseParams(myIntArray);
    
            object[] myObjArray = { 2, 'b', "test", "again" };
            UseParams2(myObjArray);
    
            // The following call causes a compiler error because the object 
            // array cannot be converted into an integer array. 
            //UseParams(myObjArray); 
    
            // The following call does not cause an error, but the entire  
            // integer array becomes the first element of the params array.
            UseParams2(myIntArray);
        }
    }
    /*
    Output:
        1 2 3 4
        1 a test
    
        5 6 7 8 9
        2 b test again
        System.Int32[]
    */

    The code is from the offical developer network of the microsoft.

    http://msdn.microsoft.com/en-us/library/w5zay9db.aspx

  • 相关阅读:
    Hibernate
    Redis的学习
    Redis的人门以及使用
    Win32 配置文件用法
    Using virtual lists
    windows log
    Win查询注册表获取CPU与内存参数
    MFC 多线程及线程同步
    使用Custom Draw优雅的实现ListCtrl的重绘
    MFC工具栏设计
  • 原文地址:https://www.cnblogs.com/boyweb/p/3266247.html
Copyright © 2011-2022 走看看