c#扩展方法奇思妙用高级篇四:对扩展进行分组管理
2010-09-30 20:56:53 来源:WEB开发网采用这种方式有几个缺点:
1.使用一个扩展要先As一次,再使用具体扩展,比之前多了一步操作:这是分组管理必然的,建议使用频率非常高的还是直接扩展给string类,不要分组。只对使用频率不高的进行分组。
2.扩展后的智能提示不友好,扩展的方法与Equals、ToString混在了一起,而且没有扩展方法的标志。
先给出这种方法的实现参考代码,再来改进:
1 public static class StringExtension
2 {
3 public static ChineseString AsChineseString(this string s) { return new ChineseString(s); }
4 public static ConvertableString AsConvertableString(this string s) { return new ConvertableString(s); }
5 public static RegexableString AsRegexableString(this string s) { return new RegexableString(s); }
6 }
7 public class ChineseString
8 {
9 private string s;
10 public ChineseString(string s) { this.s = s; }
11 //转全角
12 public string ToSBC(string input) { throw new NotImplementedException(); }
13 //转半角
14 public string ToDBC(string input) { throw new NotImplementedException(); }
15 //获取汉字拼音首字母
16 public string GetChineseSpell(string input) { throw new NotImplementedException(); }
17 }
18 public class ConvertableString
19 {
20 private string s;
21 public ConvertableString(string s) { this.s = s; }
22 public bool IsInt(string s) { throw new NotImplementedException(); }
23 public bool IsDateTime(string s) { throw new NotImplementedException(); }
24 public int ToInt(string s) { throw new NotImplementedException(); }
25 public DateTime ToDateTime(string s) { throw new NotImplementedException(); }
26 }
27 public class RegexableString
28 {
29 private string s;
30 public RegexableString(string s) { this.s = s; }
31 public bool IsMatch(string s, string pattern) { throw new NotImplementedException(); }
32 public string Match(string s, string pattern) { throw new NotImplementedException(); }
33 public string Relplace(string s, string pattern, MatchEvaluator evaluator) { throw new NotImplementedException(); }
34 }
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››扩展数据:如何为 Model 750 服务器选择 I/O 扩展...
- ››扩展 JDT 实现自动代码注释与格式化
- ››扩展 secldap 的功能以验证多个数据源
- ››扩展 JUnit4 以促进测试驱动开发
- ››扩展 JUnit 测试并行程序
- ››扩展的ToolStripEx控件
- ››扩展 Eclipse 的 Java 开发工具
- ››扩展 Eclipse 辅助和规范开发流程
- ››扩展方法 DataTable 和List 相互转换
更多精彩
赞助商链接