.net基础扫盲-params

先看这样一个方法

        public voidPrintTest(string word)
        {
            Console.WriteLine("{0}",word);
            Console.ReadKey();
        }

此时该方法,只能打印出 word 包含的字符,如果要对打印出的word包含的字符走出调整,那就在使用调用该方法之前去修改word变量。那有什么好办法让我们如何在调用方法时,随意控制参数的数量呢。看params是怎么实现这一点的。

看经过优化后的  PrintTest方法:

        public void PrintTest(params string[]words)
        {
            String word="start"+strPersonal;
            if (words != null)
            {
                for (int i = 0; i <words.Count(); i++)
                {
                    word = word + ","+ words[i];
                }
            }
            Console.WriteLine("{0}",word);
            Console.ReadKey();
        }

在调用方法的时候,如是写:

MyTest.PrintTest("哼"); ——输出:哼
MyTest.PrintTest("哼","哈");——输出:哼,哈
MyTest.PrintTest("哼","哈", "哼哈");——输出:哼,哈,哼哈

还可以这么写:

string[]words = new string[] { "哼", "哈", "哼哈" };
MyTest.PrintTest(words); ——输出:哼,哈,哼哈

          一般来说,参数个数都是固定的,.NET提供了更灵活的机制来实现可变数目参数,这就是使用params修饰符。可变数目参数的好处就是在某些情况下可以方便地对参数个数不确定情况的实现,例如计算任意数字的加权和,链接任意字符串为一个字符串等。

当使用params的时候,还要注意一些地方,

1、params修饰的参数必须为一维数组。

2、params修饰的参数数组,可以为任何类型,只要设置数组类型为object就可以。

3、params必须在参数列表的最后一个,并且只能使用一次。 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。