• C# params关键字


    使用 params 关键字可以指定采用数目可变的参数的方法参数。

    注意:

    1. 可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组。 还可以不发送参数。 如果未发送任何参数,则 params 列表的长度为零。
    2. 在方法声明中的 params 关键字之后不允许有任何其他参数,并且在方法声明中只允许有一个 params 关键字。
    3. 声明的 params 参数类型必须是一维数组,如以下示例所示。 否则,发生编译器错误 CS0225

    微软官方示例

    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[]
    */

    参考文章

    https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/params

    https://www.cnblogs.com/GreenLeaves/p/6756637.html

    转载文章链接已标明,如有侵权请告知。文章仅作为知识记忆所用,如有错误,敬请指正。
  • 相关阅读:
    判断一个key 是否在map中存在
    time date 基础操作
    handsontable插件HOOK事件
    删除list中指定值的元素
    handsontable的单元格操作方法
    sql求和涉及到null值
    Handsontable Read-only cells
    判断包含字符String.contains
    Wireshark
    ECMAScript 6
  • 原文地址:https://www.cnblogs.com/YorkZhangYang/p/12405523.html
Copyright © 2020-2023  润新知