菜鸟类库诞生记一:值类型的扩展

自从上次一篇博客已经有两个月了,因为一些事耽搁了 - (出发前说说我的个人感想)。

到上海之后参加了很多面试,不管从技术上还是项目经验都遭遇到了一些打击,所以决心打造属于自己的框架作品。

虽然我还是一个菜鸟,不过我相信只要坚持就会实现我的目标。

今天的内容会很简单,只是想在博客上做一个简单的记录。

此扩展方法只是方便把对象转化为指定的值类型,如果转化失败,就返回要转化的值类型的默认值。

希望园友们能够多多提出你们的意见,谢谢啦!

代码如下:

  1 using System;
  2 
  3 namespace YCG.FCL.Common.ExtensionMethods
  4 {
  5     public static class ValueTypeExtension
  6     {
  7         public static bool ToBool(this object value)
  8         {
  9             bool result = default(bool);
 10             if (value.IsNotNull())
 11             {
 12                 bool.TryParse(value.ToString(), out result);
 13             }
 14             return result;
 15         }
 16 
 17         public static byte[] ToBytes(this object value)
 18         {
 19             try
 20             {
 21                 return (byte[])value;
 22             }
 23             catch (InvalidCastException castException)
 24             {
 25                 throw castException;
 26             }
 27         }
 28 
 29         public static bool IsNotNull(this object value)
 30         {
 31             return value != null && value != DBNull.Value;
 32         }
 33 
 34         public static Int16 ToInt16(this object value)
 35         {
 36             Int16 result = default(Int16);
 37             if (value.IsNotNull())
 38             {
 39                 Int16.TryParse(value.ToString(), out result);
 40             }
 41             return result;
 42         }
 43 
 44         public static Int32 ToInt32(this object value)
 45         {
 46             Int32 result = default(Int32);
 47             if (value.IsNotNull())
 48             {
 49                 Int32.TryParse(value.ToString(), out result);
 50             }
 51             return result;
 52         }
 53 
 54         public static Int64 ToInt64(this object value)
 55         {
 56             Int64 result = default(Int64);
 57             if (value.IsNotNull())
 58             {
 59                 Int64.TryParse(value.ToString(), out result);
 60             }
 61             return result;
 62         }
 63 
 64         public static float ToFloat(this object value)
 65         {
 66             float result = default(float);
 67             if (value.IsNotNull())
 68             {
 69                 float.TryParse(value.ToString(), out result);
 70             }
 71             return result;
 72         }
 73 
 74         public static double ToDouble(this object value)
 75         {
 76             double result = default(double);
 77             if (value.IsNotNull())
 78             {
 79                 double.TryParse(value.ToString(), out result);
 80             }
 81             return result;
 82         }
 83 
 84         public static decimal ToDecimal(this object value)
 85         {
 86             decimal result = default(decimal);
 87             if (value.IsNotNull())
 88             {
 89                 decimal.TryParse(value.ToString(), out result);
 90             }
 91             return result;
 92         }
 93 
 94         public static DateTime ToDateTime(this object value)
 95         {
 96             DateTime result = default(DateTime);
 97             if (value.IsNotNull())
 98             {
 99                 DateTime.TryParse(value.ToString(), out result);
100             }
101             return result;
102         }
103     }
104 }

 

我会持续的记录个人类库诞生的过程。

以同步至:个人文章目录索引

posted @ 2013-12-20 21:36  TimYang  阅读(421)  评论(1编辑  收藏