文档章节

.NET方法无限传参数技术

o
 osc_a22drz29
发布于 2019/03/27 18:10
字数 331
阅读 9
收藏 0

精选30+云产品,助力企业轻松上云!>>>

是否有这样的需求在创建函数时参数个数不固定,又不想使用重载,那么下面这个技术就比较适合。

相信你一定见过下面这的代码:

string.Format("我叫:{0}今年:{1}岁.", "师傅", 29);

Format 就是string的一个函数,第一个参数是固定的字符串类型,那么后面的参数就不确定是具体什么数据类型和后续要传入多少个参数。

如果要用重载的话,每增加一个参数就需要增加一个重载比较麻烦。

例如:

public void Add(string sql, string name) {

 }

 public void Add(string sql, string name,int age) {

 }

 public void Add(string sql, string name,int age,int gender) {

 }

那么我们如何能像string.Format一样根据实际情况来传递参数,当然是可以的。

定义一个函数,其中在参数类型前加上params关键字,如果要使用params定义的话必须是最后一个参数,

比如你有3个参数那么第3个参数一定是params才可以。

public void Add(string sql, params object[] attribute) {

}

 

只有基础参数的传递,第二个参数可以不传递调用:

Test t = new Test();
t.Add("我是");

 

带有参数的方式调用:

Test t = new Test();
 t.Add("我是", "师傅", 29, 1);

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

SnailSVN Pro for mac(SVN客户端) v1.9.9

macw为您带来SnailSVN Pro for mac ,SnailSVN Mac版是一款类似于 TortoiseSVN 的 Apache Subversion(SVN)客户端,与 Finder 紧密集成。SnailSVN Mac版允许你从 Finder 的上下文菜单中快速...

单手绕月
19分钟前
7
0
python网络编程(进程与多线程)

multiprocessing模块   由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。   multiprocessing包是Pytho...

osc_ky74f26k
19分钟前
5
0
CentOS7 redis5.0高可用部署

概述 Redis Sentinel为Redis提供高可用性。Redis Sentinel是一个分布式系统,Sentinel本身设计为在有多个Sentinel进程协同合作的配置中运行。具有多个Sentinel进程进行协作的优点如下: 1、当...

紅顏為君笑
20分钟前
6
0
Ocelot简易教程(四)之请求聚合以及服务发现

上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能。希望能对大家有所帮助。 作者:依乐祝 原文地址:https://www...

osc_zo0djpuu
21分钟前
8
0
leetcode63(不同路径 II)--Java语言实现

求: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在...

拓拔北海
21分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部