南京酷得软件-陈朕

给系统类(如本例中的Type类)添加扩展方法的写法:

本例中:columnInfo.DisplayMemberDataType是一个Type类型的变量,而系统的Type类型本身并没有IsNumericType()这个方法。
那么如果创建这么一个方法而使我们根据现有需求通过对系统类的扩展来方便程序的开发呢?
很简单,我们可以建立一个静态类,如:

 

 1 Public static class TypeExtensions
 2 {
 3  Public static bool IsNumericeType(this Type type)
 4 {
 5 return GetNumericTypeKind(type) != 0;
 6 }
 7      Public static int GetNumericTypeKind(this Type type)
 8         {
 9             type = GetNonNullableType(type);
10             if (type.IsEnum) return 0;
11             switch (Type.GetTypeCode(type))
12             {
13                 case TypeCode.Char:
14                 case TypeCode.Single:
15                 case TypeCode.Double:
16                 case TypeCode.Decimal:
17                     return 1;
18                 case TypeCode.SByte:
19                 case TypeCode.Int16:
20                 case TypeCode.Int32:
21                 case TypeCode.Int64:
22                     return 2;
23                 case TypeCode.Byte:
24                 case TypeCode.UInt16:
25                 case TypeCode.UInt32:
26                 case TypeCode.UInt64:
27                     return 3;
28                 default:
29                     return 0;
30             }
31         }
32 }

 南京酷得软件

posted @ 2011-11-10 08:35  南京酷得软件-陈朕  阅读(314)  评论(0编辑  收藏  举报
南京酷得软件-陈朕