验证也没有做大块的处理,不过大家可以注意,可以看到想当的简洁,我们同时需要各种辅助类的设计,强制转化的处理,非空验证的处理,等等,我 们直接设计成扩展方法就能达到上图中ObjToIntNULL()的形式, 也不需要ConvertToInt32(xxxxx)的形式来转化了,不是更简洁么?
1: /* 作者: tianzh
2: * 创建时间: 2012/7/22 15:38:20
3: *
4: */
5: using System;
6: using System.Collections.Generic;
7: using System.Linq;
8: using System.Text;
9:
10: namespace TZHSWEET.Common
11: {
12: /// <summary>
13: /// 强制转化辅助类(无异常抛出)
14: /// </summary>
15: public static class ConvertHelper
16: {
17: #region 强制转化
18: /// <summary>
19: /// object转化为Bool类型
20: /// </summary>
21: /// <param name="obj"></param>
22: /// <returns></returns>
23: public static bool ObjToBool(this object obj)
24: {
25: bool flag;
26: if (obj == null)
27: {
28: return false;
29: }
30: if (obj.Equals(DBNull.Value))
31: {
32: return false;
33: }
34: return (bool.TryParse(obj.ToString(), out flag) && flag);
35: }
36: /// <summary>
37: /// object强制转化为DateTime类型(吃掉异常)
38: /// </summary>
39: /// <param name="obj"></param>
40: /// <returns></returns>
41: public static DateTime? ObjToDateNull(this object obj)
42: {
43: if (obj == null)
44: {
45: return null;
46: }
47: try
48: {
49: return new DateTime?(Convert.ToDateTime(obj));
50: }
51: catch (ArgumentNullException ex)
52: {
53: return null;
54: }
55: }
56: /// <summary>
57: /// int强制转化
58: /// </summary>
59: /// <param name="obj"></param>
60: /// <returns></returns>
61: public static int ObjToInt(this object obj)
62: {
63: if (obj != null)
64: {
65: int num;
66: if (obj.Equals(DBNull.Value))