C#缺省参数可以让代码变得更加简洁明了与时俱进心里敞亮了很多了
2023-02-18 15:37:20 时间
以前没有缺省参数这个说法时,为了让别人调用我们的代码方便一些,会写很多构造函数,例如一个查询方法贴一些代码如下:
public DataTable Search(string search)
{
return Search(string.Empty, search, null, null, string.Empty);
}
public DataTable Search(string search, string[] roleIds)
{
return Search(string.Empty, search, roleIds, null, string.Empty);
}
public DataTable Search(string search, string[] roleIds, bool? enabled)
{
return Search(string.Empty, search, roleIds, null, string.Empty);
}
public DataTable Search(string search, string[] roleIds, string auditStates)
{
return Search(string.Empty, search, roleIds, null, auditStates);
}
public DataTable Search(string search, string[] roleIds, bool? enabled, string auditStates)
{
return Search(string.Empty, search, roleIds, enabled, auditStates);
}
{
return Search(string.Empty, search, null, null, string.Empty);
}
public DataTable Search(string search, string[] roleIds)
{
return Search(string.Empty, search, roleIds, null, string.Empty);
}
public DataTable Search(string search, string[] roleIds, bool? enabled)
{
return Search(string.Empty, search, roleIds, null, string.Empty);
}
public DataTable Search(string search, string[] roleIds, string auditStates)
{
return Search(string.Empty, search, roleIds, null, auditStates);
}
public DataTable Search(string search, string[] roleIds, bool? enabled, string auditStates)
{
return Search(string.Empty, search, roleIds, enabled, auditStates);
}
那采用了缺省参数后,这部分代码会被简化成什么样子了呢?
public DataTable Search(string search = null, string[] roleIds = null, bool? enabled = true, string auditStates = null)
{
return Search(string.Empty, search, roleIds, enabled, auditStates);
}
{
return Search(string.Empty, search, roleIds, enabled, auditStates);
}
哇靠,居然一行代码就可以了,那么多构造函数都不需要了, 代码简洁了很多了,清爽了很多,心里也舒畅了.
新技术也往往会明显提高生产效率.
相关文章
- Netty 概述
- Oracle 伪列(ROWNUM)机制
- mysql只会使用到一个索引的原因
- SQL优化-三
- SQL优化-二
- SQL优化-一
- RedisUtil-redisTemplate-setNX
- 数据库无限层级分类设计
- 魔方
- CountDownLatch在SpringBoot中配合@Async使用
- 会话刷新Token校验流程
- Mybatis 夺命十八问,顶不住了! - 里奥ii的文章 - 知乎
- 阿里架构演变
- 自定义注解和事务优先级
- MyCat 连接异常 解决参考链接
- SpringBoot手动事务参考链接
- SimpleDateFormat并发隐患及其解决
- 框架收藏
- 事务隔离级别
- 循环中使用spring事务