菜鳥類庫誕生記一:值類型的擴展

自從上次一篇博客已經有兩個月了,由於一些事耽擱了 - (出發前說說個人我的感想)。html

到上海以後參加了不少面試,無論從技術上仍是項目經驗都遭遇到了一些打擊,因此決心打造屬於本身的框架做品。面試

雖然我仍是一個菜鳥,不過我相信只要堅持就會實現個人目標。框架

今天的內容會很簡單,只是想在博客上作一個簡單的記錄。post

此擴展方法只是方便把對象轉化爲指定的值類型,若是轉化失敗,就返回要轉化的值類型的默認值。ui

但願園友們可以多多提出大家的意見,謝謝啦!this

代碼以下:url

  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 }

 

我會持續的記錄我的類庫誕生的過程。spa

以同步至:我的文章目錄索引code

相關文章
相關標籤/搜索