WEB开发网
开发学院软件开发C语言 c#扩展方法奇思妙用高级篇四:对扩展进行分组管理... 阅读

c#扩展方法奇思妙用高级篇四:对扩展进行分组管理

 2010-09-30 20:56:53 来源:WEB开发网   
核心提示: 这里需要两个类,一个类ChineseString作为AsXXX的返回值,c#扩展方法奇思妙用高级篇四:对扩展进行分组管理(4),第二个类ChineseStringExtension是对ChineseString进行扩展的类,能过这种方式,展示相应的扩展,这样又解决了扩展组的泛滥问题,才能显示出扩

这里需要两个类,一个类ChineseString作为AsXXX的返回值,第二个类ChineseStringExtension是对ChineseString进行扩展的类。能过这种方式,才能显示出扩展的标识符号!每组扩展要两个类,比较麻烦。

方式一、方式二感觉都不太好,而且扩展组多了,还会有新的问题出现,如下:

c#扩展方法奇思妙用高级篇四:对扩展进行分组管理

也是很要命的!再来看第三种方式,这是我和韦恩卑鄙在讨论单一职责原则时想出来的,先看效果:

c#扩展方法奇思妙用高级篇四:对扩展进行分组管理

c#扩展方法奇思妙用高级篇四:对扩展进行分组管理

方法三将所有的扩展精简为一个As<T>!是的,我们仅需要As<T>这一个扩展!T为一接口,通过输入不同的T,展示相应的扩展。这样又解决了扩展组的泛滥问题,先看下实现一个新的扩展组需要写什么代码,先看左图的代码:

 1     public interface IConvertableString : IExtension<string> { }
 2
 3     public static class ConvertableString
 4     {
 5         public static bool IsInt(this IConvertableString s)
 6         {
 7             int i; return int.TryParse(s.GetValue(), out i);
 8         }
 9         public static bool IsDateTime(this IConvertableString s)
10         {
11             DateTime d; return DateTime.TryParse(s.GetValue(), out d);
12         }
13
14         public static int ToInt(this IConvertableString s)
15         {
16             return int.Parse(s.GetValue());
17         }
18
19         public static DateTime ToDateTime(this IConvertableString s)
20         {
21             return DateTime.Parse(s.GetValue());
22         }
23     }

上一页  1 2 3 4 5 6  下一页

Tags:扩展 方法 奇思

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接