A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨廉壬 中级黑马   /  2012-3-13 17:32  /  2578 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

params的具体用法及用途

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

4 个回复

倒序浏览
当不确定方法带人参数的个数时用到 params。
比如 void ShowMsg(params string[] s);
string数组的元素个数不确定  要用params来修饰。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
params是可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组!
形式为:方法修饰符 返回类型 方法名(params 类型[] 变量名)

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
同上
补充:
1有params修饰的数组在传参数的时候不能传数组只能传参数  像myFaction(参数a,参数b,参数c1,参数c2,参数c3) 参数c  就是有params修饰的数组
2,params修饰的参数要是方法参数的最后一个参数  myFaction(参数a,参数b,params 参数c)

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 王长森 于 2012-3-13 22:44 编辑

1:params可变参数
2:方法修饰符 返回类型 方法名(params 类型[] 变量名)
//两个数比较大小
            Console.WriteLine("----------------------两个数比较大小----------------------");
            Console.WriteLine("请你输入a的值:");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("请你输入b的值:");
            int b = int.Parse(Console.ReadLine());
            int max = 0;//存取最大的值
            int min = 0;//存取最小的值
            if (a < b)//判断两数的大小,大的赋值给max,小的赋给min
            {
                max = b;
                min = a;
            }
            else
            {
                max = a;
                min = b;
            }
            Console.WriteLine("最大数为{0}", max);//输出最大值
            Console.WriteLine("最小数位{0}", min);//输出最小值
            //上面仅仅是两个数,那假如是10个数或更多的数怎么办呢~这 让我想到了数组

            //int max = 0;//存取最大的值
            //int min = 0;//存取最小的值
            int[] numbers = new int[10] { 12, 56, 34, 3, 23, 1, 56, 78, 87, 100 };
            max = numbers[0];
            min = numbers[0];
            for (int i = 1; i < numbers.Length; i++)
            {
                if (max < numbers)
                {
                    max = numbers;
                }
                if (min > numbers)
                {
                    min = numbers;
                }
            }

            Console.WriteLine("最大数为{0}", max);//输出最大值
            Console.WriteLine("最小数位{0}", min);//输出最小值
            /*
           *虽然可以用数组来比较更多的数,比前面要灵活一点,谁知道用户
           *真正用的的时候会拿多少数来比较 ~ 而且这个只能比较int类型 ,
           *所以说还是有一定的局限性,这有让我想到了Prarms的可变参数

             *
             */
           Util.MaxAndMin(12,34,54,5,4,78,56,4,32,2,89,67,4,2,23,56,6,4,2,78,100);//测试代码
           Util.MaxAndMin(12.3,56.4,34,90.3);



//下面就是封装好了的一个方法,这样一来为程序增加了很强的扩展性
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 类
{
    class Util
    {
        public static void MaxAndMin(params int [] numbers)//这里就是所谓的Params的方法声明
        {
            if (numbers == null || numbers.Length == 0)
            {
                Console.WriteLine("数组为初始化");
            }
            int max = numbers[0];
            int min = numbers[0];
            for (int i = 1; i < numbers.Length; i++)
            {
                if (max < numbers)
                {
                    max = numbers;
                }
                if (min > numbers)
                {
                    min = numbers;
                }
            }
            Console.WriteLine("最大数为{0}", max);//输出最大值
            Console.WriteLine("最小数位{0}", min);//输出最小值
        }
        public static void MaxAndMin(params double[] numbers)
        {
            if (numbers == null || numbers.Length == 0)
            {
                Console.WriteLine("数组为初始化");
            }
            double max = numbers[0];
           double min = numbers[0];
            for (int i = 1; i < numbers.Length; i++)
            {
                if (max < numbers)
                {
                    max = numbers;
                }
                if (min > numbers)
                {
                    min = numbers;
                }
            }
            Console.WriteLine("最大数为{0}", max);//输出最大值
            Console.WriteLine("最小数位{0}", min);//输出最小值
        }
    }
}

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马