黑马程序员 Params可变参数

本文介绍了一种比较多个整数和浮点数大小的方法,并通过封装函数增强了程序的灵活性和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------  
//两个数比较大小
            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[i])
                {
                    max = numbers[i];
                }
                if (min > numbers[i])
                {
                    min = numbers[i];
                }
            }
            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)
        {
            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[i])
                {
                    max = numbers[i];
                }
                if (min > numbers[i])
                {
                    min = numbers[i];
                }
            }
            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[i])
                {
                    max = numbers[i];
                }
                if (min > numbers[i])
                {
                    min = numbers[i];
                }
            }
            Console.WriteLine("最大数为{0}", max);//输出最大值
            Console.WriteLine("最小数位{0}", min);//输出最小值
        }
    }
}
=====王长森 请多多指教

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ---------------------- 详细请查看: http://net.itheima.com/  
### C# 中 `params` 关键字的使用方法 在 C# 中,`params` 关键字用于定义一个参数数组,允许方法接受可变数量的参数。通过使用 `params`,可以传递逗号分隔的参数列表或一个数组给方法,这些参数在方法内部会被处理为一个数组[^1]。 #### 语法规范 - `params` 关键字只能应用于方法签名中的最后一个参数。 - 参数数组的类型必须是一维数组类型。 - 在 `params` 关键字之后不允许再声明其他参数[^2]。 #### 示例代码 以下是一个简单的示例,展示如何使用 `params` 关键字: ```csharp using System; public class ParamsExample { // 定义一个带有 params 的方法 public static void PrintNumbers(params int[] numbers) { foreach (var number in numbers) { Console.WriteLine(number); } } public static void Main() { // 调用方法时可以直接传递逗号分隔的参数 PrintNumbers(1, 2, 3, 4); // 或者传递一个数组 int[] array = { 5, 6, 7, 8 }; PrintNumbers(array); } } ``` #### 输出结果 ``` 1 2 3 4 5 6 7 8 ``` 在上述代码中,`PrintNumbers` 方法使用了 `params` 关键字来接收可变数量的整数参数。调用该方法时,既可以传递逗号分隔的参数列表,也可以传递一个数组[^3]。 #### 性能与最佳实践 从性能角度来看,`params` 关键字虽然提供了极大的灵活性,但在某些场景下可能会导致内存分配增加。例如,当传递大量参数时,会创建一个新的数组对象。为解决这一问题,C# 13 引入了基于 `Span<T>` 的优化方案,避免了不必要的内存分配[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值