[C#-4] params关键字

说明

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

可以发送参数声明中所指定类型的逗号分隔的参数列表或指定类型的参数数组。 还可以不发送参数。 如果未发送任何参数,则 params 列表的长度为零。

在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

示例

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()
    {
        // 可以传入用逗号分割的指定类型的参数列表
        UseParams(1, 2, 3, 4);
        UseParams2(1, ‘a‘, "test");

        // params参数可以接受0个或多个参数
        // 下面这个函数调用将输出一个空行
        UseParams2();

        // 可以传入参数数组,但前提是数组类型要和函数声明时的类型相同
        int[] myIntArray = { 5, 6, 7, 8, 9 };
        UseParams(myIntArray);

        object[] myObjArray = { 2, ‘b‘, "test", "again" };
        UseParams2(myObjArray);

        // 下面的函数调用将会出现编译错误,因为传入的参数无法被解析为整型数组
        //UseParams(myObjArray); 

        // 下面的函数调用不会出错,但是整型数组将会变为paras object数组的第一个元素
        // 这个需要大家仔细体会一下
        UseParams2(myIntArray);
    }
}
/*
Output:
    1 2 3 4
    1 a test

    5 6 7 8 9
    2 b test again
    System.Int32[]
*/
时间: 2024-10-12 21:36:06

[C#-4] params关键字的相关文章

params关键字

每个C#函数都允许有个参数带params关键字,在调用的时候可以不给他传值,也可以给他传值,还可以给他传多个值 注意事项: ·一个函数中只能一个参数带params关键字:·带params关键字的参数必须是最后一个参数:·带params关键字的参数类型必须是一维数组: class aaa    {        static void Main(string[] args)        {            Console.WriteLine(Test("111"));//不传值,

params关键字载入空值的陷阱

在编写方法时,不确定这个方法要传入多少个参数,或者随着程序的开发速度,该方法的参数会发生很大变化,在C#中引入了params关键字,使用params修饰object类型的数组并作为方法的参数类型,可以解决方法参数不确定的问题.但是这里有一个问题,这个参数列表中的某个值不确定是否为空,就会发生运行时错误. static void Main(string[] args) { Program p = new Program(); p.ShowInfo("asdf", 100, null);

Python Special Syntax 10:列表综合,不定数参数传递(C#的params关键字)

列表综合 参见:http://woodpecker.org.cn/abyteofpython_cn/chinese/ch15s03.html #-*-coding:utf-8 def ttt(value1,*args): for i in args: value1+=i print(value1) def tt2(**args): iSum=args['a']+args['b'] print iSum ttt(10,1,2,3,4) tt2(a=3,b=4) 输出:207 Python Spec

c#中params关键字应用

c#params应用 params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 关于参数数组,需掌握以下几点. (1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后: (2)参数数组必须是一维数组: (3)不允许将params修饰符与ref和out修饰符组合起来使用: (4)与参数数组对应的实参可以是同一类型的

C# params关键字

params数组的要点 C#开发语言中 params 是关键字,可以指定在参数数目可变处采用参数的方法参数.在函数的参数数目可变而执行的代码差异很小的时候很有用! 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Sum(1,2,"a"); 6 Console.ReadKey(); 7 } 8 static void Sum(params object[] numStack) 9 { 10 for (int i =

用C#中的params关键字实现方法形参个数可变

个人认为,提供params关键字以实现方法形参个数可变是C#语法的一大优点.在方法形参列表中,数组类型的参数前加params关键字,通常可以在调用方法时代码更加精练. 例如,下面代码: [csharp] view plaincopy class Program { static void Main(string[] args) { Console.WriteLine(Sum(1)); Console.WriteLine(Sum(1, 2, 3)); Console.WriteLine(Sum(1

c#中可变参数params关键字学习

引用 https://www.cnblogs.com/maowp/p/8134342.html 基础知识 1.概念 params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 2.注意项 1.若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后. 2.不允许将params修饰符与ref和out修饰符组合起来使用. 3.

C#中三个关键字params,Ref,out

关于这三个关键字之前可以研究一下原本的一些操作 using System; using System.Collections.Generic; using System.Text; namespace ParamsRefOut { class Program { static void ChangeValue(int i) { i=5; Console.WriteLine("The ChangeValue method changed the value "+i.ToString())

C# 参考之方法参数关键字:params、ref及out

如果在为方法声明参数时未使用 ref 或 out,则该参数可以具有关联的值.可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值.通过使用方法参数关键字,可以更改这种行为. params params 关键字可以指定在参数数目可变处采用参数的方法参数. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例: 字面意思比较难懂,所以看示例很有用. using System; class App { public stati