一个小小的代码重构
2009-03-08 01:13
232 查看
自从C#3.0的扩展方法出来后,在我做的框架里的曾经的类似XXXUtil的类,全部可以用扩展方法来实现了。而且原来的调用方式依然兼容。举例来说:
public static Object[] ArrayListToObjectArray(this ArrayList al)
其实,我就在方法要扩展的对象加this,而我本身我的类StringUtil本身又是static的,所以两种调用方式兼容。
用法一:(注意,这是扩展方法用法)
[TestMethod]
public TestResult Test() {
var al = new ArrayList {"Lihua", 26};
var s = al.ArrayListToStringArray();
if (s.Length == 2 && s[0] == "Lihua" && s[1] == "26") {
return TestResult.Pass;
}
return TestResult.Fail;
}
用法二:(原始用法)
[TestMethod]
public TestResult Test() {
var al = new ArrayList {"Lihua", 26};
var s = StringUtil.ArrayListToStringArray(al);
if (s.Length == 2 && s[0] == "Lihua" && s[1] == "26") {
return TestResult.Pass;
}
return TestResult.Fail;
}
public static Object[] ArrayListToObjectArray(this ArrayList al)
其实,我就在方法要扩展的对象加this,而我本身我的类StringUtil本身又是static的,所以两种调用方式兼容。
用法一:(注意,这是扩展方法用法)
[TestMethod]
public TestResult Test() {
var al = new ArrayList {"Lihua", 26};
var s = al.ArrayListToStringArray();
if (s.Length == 2 && s[0] == "Lihua" && s[1] == "26") {
return TestResult.Pass;
}
return TestResult.Fail;
}
用法二:(原始用法)
[TestMethod]
public TestResult Test() {
var al = new ArrayList {"Lihua", 26};
var s = StringUtil.ArrayListToStringArray(al);
if (s.Length == 2 && s[0] == "Lihua" && s[1] == "26") {
return TestResult.Pass;
}
return TestResult.Fail;
}
相关文章推荐
- 工作中发现一个代码重构的例子
- SceneKit一个3D场景角色的代码重构
- 一个重构代码的小技巧
- 我提问的:找一个通用函数,修改同一类别的控件的一些属性,或者优化、重构下面的代码。
- 一个完整的定向小虫,方便大家看小说,呵呵,有完整代码,实例,文档。。还可定制,这仅仅是一个小小的演试.
- 这是一个小小的打地鼠游戏,里面有详细的步骤(在参考了一些资料的情况下,写的代码)
- 总结【代码重构】:Backbone.js做一个点击链接,跳过加载图片后即可跳转到效果图片的例子
- javascript代码的小小重构
- SceneKit一个3D场景角色的代码重构
- 一个重构代码的小技巧
- 翻译《有关编程、重构及其他的终极问题?》——14.一个好的编译器和代码风格还不够
- 代码重构的一个示例
- 实现一个简单的按钮实例-上下左右,左旋转,右旋转,放大缩小。代码重构
- SceneKit一个3D场景角色的代码重构
- 【代码重构 & JDT】判断一个方法是否是实现重写,继承重写和递归
- 模块化设计,面向接口开发。不断重构设计和代码,一个大幅提高开发效率的好方法:不断重构既有代码和设计,为复用准备。同时也是优化。
- 一个C++程序重构的例子——糟糕的代码
- PHP开发的一个小小项目,记录下实现思路(附上实现功能的示例代码)(一)
- JAVA--第十一周实验--模拟一个信号灯的软件--代码重构--升级版
- 代码重构的一个示例