当前位置: 首页 > article >正文

C#参数数组params的使用方法

在 C# 中,params关键字用于指定一个方法参数可以接受可变数量的参数。调用时可以传入个数不同的实参,具备很好的灵活性。

首先看一个案例

 class Program
    {
        public static void useParams(params int[] list)
        {
            for (int i = 0; i < list.Length; i++)
            {
                Console.WriteLine(list[i]);
            }
        }

        public static void useParams1(params object[] list)
        {
            for (int i = 0; i < list.Length; i++)
            {
                Console.WriteLine(list[i]);
            }
        }

        static void Main(string[] args)
        {
            useParams(1, 2, 3);
            Console.WriteLine();
            useParams1(1, 's', "bnc");
            Console.WriteLine();
            int[] myarray = new int[3] { 11, 22, 33 };
            useParams(myarray);
            Console.ReadKey();
        }
    }

输出结果如下:

使用参数数组的注意事项:

1.位置要求:该参数必须是方法参数列表中的最后一个参数。

2.唯一性:在一个方法中只能有一个 “params” 参数,不能有多个 “params” 参数同时存在。

3.参数类型:“params” 关键字可以与任何类型配合使用,不仅仅局限于整数类型。比如可以定义 “params string []” 来接受可变数量的字符串参数。

4.不允许ref 或者out params数组

 如:public static void useParams( ref params int[] list)    //编译时报错

         public static void useParams(out params int[] list)   //编译时报错

5.非params方法优先于一个params方法,也就是说如果愿意,可以为普通情况创建一个方法的重载版本。

如: public static void useParams(int i1,int i2)优于 public static void useParams(params int[] list)第一个先被调用。

6.params关键字不构成方法参数签名的一部分。

 如:public static void useParams( int[] list) 和 public static void useParams(params int[] list) 方法参数相同不可重载。


http://www.kler.cn/news/329193.html

相关文章:

  • UDP校验和计算及网络中的校验和机制
  • Arthas sc(查看JVM已加载的类信息 )
  • 构建electron项目
  • SpringBoot驱动的墙绘艺术在线展示平台
  • 【Linux】几种常见配置文件介绍
  • 英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)
  • smb文件夹共享设置
  • 软件测试——Python和UnitTest框架
  • 【Router】路由功能之MAC地址过滤(MAC Filter)功能介绍及实现
  • 用友U8-CRM fillbacksettingedit.php SQL注入复现
  • 【C++】多态,虚函数,重载,重写,重定义,final,override,抽象类,虚函数表,动态绑定,静态绑定详解
  • Web安全 - 路径穿越(Path Traversal)
  • 头号积木玩家——软件工程专业职业生涯规划报告
  • Python知识点:如何使用PyO3进行Rust扩展
  • 后端开发如何提高项目系统的性能
  • B树、B+树
  • 爬虫入门 Selenium使用
  • SQL Server 2012 ldf日志文接太大的截断和收缩日志处理
  • Oracle 时间计算
  • Django一分钟:DRF ViewSet烹饪指南,创建好用的视图集
  • HTML+CSS 水滴登录页
  • C# 相等性检测方法差异分析(==,Equals,ReferenceEquals)
  • Kafka和RabbitMQ比较
  • LSTM模型实现光伏发电功率的预测
  • 滚雪球学MySQL[2.2讲]:基本数据操作详解:插入、查询、更新与删除
  • Linux 线程同步
  • 影院管理革新:小徐的Spring Boot应用
  • java 选择排序
  • 【易社保-注册安全分析报告】
  • 【中间件】fastDFS的相关知识