| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:借助 委托 精简代码
只看楼主 加入收藏
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
结帖率:80.91%
收藏
已结贴  问题点数:20 回复次数:2 
借助 委托 精简代码
借助 委托 精简代码
相信大多朋友和我一样,每天写代码就会用到 String.Format 这个方法。太经常用,感觉敲起键盘了不是太利索,于是把它精简成一个字母 F,以后代码可以这样写了:
var s = F("今天是 {0}", DateTime.Now)
实现这个简化不难,首先我们声明 StringFormat 的委托:
delegate string StringFormat(string format, params object[] args);
然后在函数(或类)中,声明一个 StringFormat 类型的变量 F(字段或属性),并给它赋值:
StringFormat F = string.Format;
OK,从此可以用一个简单的 F 来代替冗长的 String.Format 了:
var s1 = F("今天是 {0}", DateTime.Now);
var s2 = F("{0} 生日是 {1:yyyy-MM-dd}", "小明", new DateTime(2000, 1, 1));
下面是调试的截图:
图片附件: 游客没有浏览图片的权限,请 登录注册

当然这种方式也是有缺点和不足的。

首先,F 无法在全局中使用:如果 F 声明在方法中,则只能所在方法中使用;如果 F 声明在类中作为字段或属性,只能在所在类中使用。

其次,String.Format 有多个重载,如下图:
图片附件: 游客没有浏览图片的权限,请 登录注册


F 只能对应 1166 行的那个,虽然可以包容除 1190 行的其它三个,但效率略低。
使用委托简化代码这种方式的是是非非留给大家讨论吧

[ 本帖最后由 wangnannan 于 2012-1-19 14:29 编辑 ]
搜索更多相关主题的帖子: 声明 键盘 
2012-01-19 14:25
炫色流年
Rank: 2
等 级:论坛游民
帖 子:61
专家分:18
注 册:2011-8-8
收藏
得分:10 
学习学习。。
2012-01-22 17:26
winners
Rank: 6Rank: 6
来 自:济南
等 级:侠之大者
威 望:1
帖 子:105
专家分:416
注 册:2009-3-20
收藏
得分:10 
2012-01-23 15:52
快速回复:借助 委托 精简代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083053 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved