• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 用C#的params关键字实现方法形参个数可变示例

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#中params,c#params,c#createparams,c#实参和形参,params等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

个人认为,提供params关键字以实现方法形参个数可变是C#语法的一大优点。在方法形参列表中,数组类型的参数前加params关键字,通常可以在调用方法时代码更加精练。

例如,下面代码:

class Program 
{ 
static void Main(string[] args) 
{ 
Console.WriteLine(Sum(1)); 
Console.WriteLine(Sum(1, 2, 3)); 
Console.WriteLine(Sum(1, 2, 3, 4, 5)); 
Console.ReadKey(); 
} 
private static int Sum(params int[] values) 
{ 
int sum = 0; 
foreach (int value in values) 
sum += value; 
return sum; 
} 
}
</div>

实现了一个Sum方法,用于接收一组整数,并返回它们的和。参数values被加上params关键字后,在调用时可以在实参列表中列举出这组整数中的每个元素,非常方便。

关于params关键字的用法,需要注意以下几点:

1. params只能用于一维数组,不能用于多维数组和诸如ArrayList、List<T>等任何类似于数组的集合类型。

2.被加上params关键字的形参,必须是形参列表中最后一个形参,并且方法声明中只允许一个 params 关键字。

3. 用params关键字的方法,有四种调用形式:

第一种,列举出数组各元素:Sum(1,2,3),这也是最常用的形式;

第二种,像没有加params关键字的数组形参那样,用数组名做实参:Sum(new int[]{1,2,3})或int n=new int[]{1,2,3};Sum(n);;

第三种,加params关键字的参数在调用时可以省略:Sum();//返回0;这种方式有时可以少定义一个方法重载,但当明确定义了重载int Sum()时,编译器会优先调用int Sum(),而不是Sum(params int[] values)。而且省略params型参数,方法内部仍会new一个元素个数为0的数组,效率略查。

第四种,不省略params型参数,用null代替,效率比第三种略高,因为其内部不会new这个数组。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#中Params的用法
  • 用C#的params关键字实现方法形参个数可变示例
  • c#的params参数使用示例
  • C# 运用params修饰符来实现变长参数传递的方法
  • C#难点逐个击破(3):params数组参数

相关文章

  • 2017-05-28C#中在WebClient中使用post发送数据实现方法
  • 2017-05-28C#实现路由器断开连接,更改公网ip的实例代码
  • 2017-05-28基于C#中XmlReader读取Xml的深入分析
  • 2017-05-28C#实现Winform版计算器
  • 2017-05-28unity实现摄像头跟随
  • 2017-05-28C#抓取当前屏幕并保存为图片的方法
  • 2017-05-28c# 动态加载dll文件,并实现调用其中的方法(推荐)
  • 2017-05-28C#委托初级使用的实例代码
  • 2017-05-28C# 汉字转化拼音的简单实例代码
  • 2017-05-28WPF弹出带蒙板的消息框

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Windows系统中C#读写ini配置文件的程序代码示例分享
    • 基于C#编写经理评分系统
    • C#启动windows服务方法的相关问题分析
    • C#基于DBContext(EF)实现通用增删改查的REST方法实例
    • c#图片缩放图片剪切功能实现(等比缩放)
    • 泛型编程去掉字段重复数据的方法
    • ScriptControl控件执行自定义VBS脚本示例分析
    • C#实现的字符串转MD5码函数实例
    • 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    • 浅谈C#基础之类的访问修饰符

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有