C#缺省参数可以让代码变得更加简洁明了与时俱进心里敞亮了很多了
2012-03-21 15:55
447 查看
以前没有缺省参数这个说法时,为了让别人调用我们的代码方便一些,会写很多构造函数,例如一个查询方法贴一些代码如下:
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);
}
复制代码
那采用了缺省参数后,这部分代码会被简化成什么样子了呢?
public DataTable Search(string search = null, string[] roleIds = null, bool? enabled = true, string auditStates = null)
{
return Search(string.Empty, search, roleIds, enabled, auditStates);
}
复制代码
哇靠,居然一行代码就可以了,那么多构造函数都不需要了, 代码简洁了很多了,清爽了很多,心里也舒畅了.
新技术也往往会明显提高生产效率.
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
About
吉日嘎拉(蒙古语为吉祥如意),2000年毕业于黑龙江大学计算机系软件专业,目前定居杭州,典型的IT软件土鳖一个,外号“软件包工头”。
通用权限管理系统组件(GPM - General Permissions Manager)自2003年开始发布,目前是国内注册用户和免费盗版用户最多的权限管理系统,是各种信息管理系统开发中彻底的权限解决方案。本组件支持多种主流数据库(Oracle、sqlsever、db2、mysql),功能强大,使用方便,代码简洁,思路严谨,被广大支持者称为权限管理系统中的“走火入魔级权限管理系统”。
精心维护通用权限管理系统组件(GPM - General Permissions Manager)有8年多,3年的不断推广,20万行经典的业务逻辑积累,经过上万次的调试修正,经历了四百个付费客户,上百软件公司的实战开发。
11年以上开发经验,外企工作5年,上市公司3年,独立经营软件公司2年,主持研发部门管理工作4年以上。
将权限管理、工作流做到我能力的极致,一个人只能做好那么很少的几件事情。
QQ:252056973,Mail:jirigala_bao@hotmail.com
访问者分布
通用权限管理模块的严谨设计定位、精心编码实现、不断维护推广、持续优化改进,主要是为了实现一个可以高度重复利用劳动成果的工具软件并有偿提供给所需的人们,另想成为国人值得骄傲的知名软件功能模块。
可供国内管理类开发人员在日常工作中进行灵活二次开发利用的模块,开发管理类软件的必备工具之一,我们的目标就是让程序员早点儿回家休息。
淘宝店地址:http://jirigala.taobao.com
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);
}
复制代码
那采用了缺省参数后,这部分代码会被简化成什么样子了呢?
public DataTable Search(string search = null, string[] roleIds = null, bool? enabled = true, string auditStates = null)
{
return Search(string.Empty, search, roleIds, enabled, auditStates);
}
复制代码
哇靠,居然一行代码就可以了,那么多构造函数都不需要了, 代码简洁了很多了,清爽了很多,心里也舒畅了.
新技术也往往会明显提高生产效率.
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
About
吉日嘎拉(蒙古语为吉祥如意),2000年毕业于黑龙江大学计算机系软件专业,目前定居杭州,典型的IT软件土鳖一个,外号“软件包工头”。
通用权限管理系统组件(GPM - General Permissions Manager)自2003年开始发布,目前是国内注册用户和免费盗版用户最多的权限管理系统,是各种信息管理系统开发中彻底的权限解决方案。本组件支持多种主流数据库(Oracle、sqlsever、db2、mysql),功能强大,使用方便,代码简洁,思路严谨,被广大支持者称为权限管理系统中的“走火入魔级权限管理系统”。
精心维护通用权限管理系统组件(GPM - General Permissions Manager)有8年多,3年的不断推广,20万行经典的业务逻辑积累,经过上万次的调试修正,经历了四百个付费客户,上百软件公司的实战开发。
11年以上开发经验,外企工作5年,上市公司3年,独立经营软件公司2年,主持研发部门管理工作4年以上。
将权限管理、工作流做到我能力的极致,一个人只能做好那么很少的几件事情。
QQ:252056973,Mail:jirigala_bao@hotmail.com
访问者分布
通用权限管理模块的严谨设计定位、精心编码实现、不断维护推广、持续优化改进,主要是为了实现一个可以高度重复利用劳动成果的工具软件并有偿提供给所需的人们,另想成为国人值得骄傲的知名软件功能模块。
可供国内管理类开发人员在日常工作中进行灵活二次开发利用的模块,开发管理类软件的必备工具之一,我们的目标就是让程序员早点儿回家休息。
淘宝店地址:http://jirigala.taobao.com
相关文章推荐
- C#缺省参数可以让代码变得更加简洁明了与时俱进心里敞亮了很多了
- C#缺省参数可以让代码变得更加简洁明了与时俱进心里敞亮了很多了
- AndroidAnnotations一个可以让你的android代码更加简洁的框架
- AndroidAnnotations一个可以让你的android代码更加简洁的框架
- Js setInterval 与 setTimeout(定时执行与循环执行) 的代码 (可以传入参数)
- 自己汉化qq2013国际版的C#代码。代码种没有错误检测,只是为了留个纪念(太烂的代码,bug很多。。。)。
- C# params object[] args 可以传多个参数,可以不限制类型
- Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
- C#中的快捷键,可以更方便的编写代码
- 编写高质量代码改善C#程序的157个建议[优先考虑泛型、避免在泛型中声明静态成员、为泛型参数设定约束]
- 在C#中用最简洁有效的代码执行存储过程并返回数据
- 链式编程----可以为你省去很多重复的代码
- 去掉CSS赘余代码,CSS可以更简洁
- 模版模式构建可复用性大集合切片循环,使用java8 lambda去调用可以更加简洁哦
- 助你写出更加有效、简洁、紧凑的代码-Stream
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- 编写高质量代码改善C#程序的157个建议——建议98:用params减少重复参数
- Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
- 编写高质量代码改善C#程序的157个建议——建议129:泛型类型参数要以T作为前缀
- 这种方法在受到.NET版本和访问注册表权限时,是最佳解决方案,虽然代码看起来很多,不过下面的类直接拿走用就可以了。