1. 程式人生 > 實用技巧 >.net擴充套件方法——型別轉換

.net擴充套件方法——型別轉換

.net擴充套件方法——型別轉換

  1. ObjToBool:object型轉換為bool型
  2. StrToBool:string型轉換為bool型
  3. ObjToInt:將物件轉換為Int32型別
  4. StrToInt:將字串轉換為Int32型別
  5. StrToIntNull
  6. ObjToDecimal
  7. StrToDecimal
  8. StrToDecimalNull
  9. ObjToDouble
  10. StrToDouble
  11. StrToGuid
  12. StrToDateTime
  13. ObjToDateTime
  14. ObjToStr

        #region 型別轉換

        /// <summary>
/// object型轉換為bool型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的bool型別結果</returns> public static bool ObjToBool(this object expression, bool defValue) {
if (expression != null) return ObjToBool(expression, defValue); return defValue; } /// <summary> /// string型轉換為bool型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param>
/// <returns>轉換後的bool型別結果</returns> public static bool StrToBool(this string expression, bool defValue) { if (expression != null) { if (string.Compare(expression, "true", true) == 0 || expression == "") return true; else if (string.Compare(expression, "false", true) == 0 || expression == "") return false; } return defValue; } /// <summary> /// 將物件轉換為Int32型別 /// </summary> /// <param name="expression">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static int ObjToInt(this object expression, int defValue) { if (expression != null) return StrToInt(expression.ToString(), defValue); return defValue; } /// <summary> /// 將字串轉換為Int32型別 /// </summary> /// <param name="expression">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static int StrToInt(this string expression, int defValue) { if (expression == null) return defValue; int val; if (Int32.TryParse(expression.Replace(",", ""), out val)) { return val; } return defValue; } public static int? StrToIntNull(this string expression) { if (expression == null) return null; int val; if (Int32.TryParse(expression.Replace(",", ""), out val)) { return val; } return null; } /// <summary> /// 將字串轉換為Int32型別 /// </summary> /// <param name="expression">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static int? StrToInt(this string expression) { if (expression == null) return null; int val; if (Int32.TryParse(expression.Replace(",", ""), out val)) { return val; } return null; } /// <summary> /// Object型轉換為decimal型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的decimal型別結果</returns> public static decimal ObjToDecimal(this object expression, decimal defValue) { if (expression != null) return StrToDecimal(expression.ToString(), defValue); return defValue; } /// <summary> /// string型轉換為decimal型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的decimal型別結果</returns> public static decimal StrToDecimal(this string expression, decimal defValue) { if (expression == null) return defValue; decimal val; if (decimal.TryParse(expression.Replace(",", ""), out val)) { return val; } return defValue; } public static decimal? StrToDecimalNull(this string expression) { if (expression == null) return null; decimal val; if (decimal.TryParse(expression.Replace(",", ""), out val)) { return val; } return null; } /// <summary> /// Object型轉換為double型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static double ObjToDouble(this object expression, double defValue) { if (expression != null) return StrToDouble(expression.ToString(), defValue); return defValue; } /// <summary> /// 將字串轉換為Double型別 /// </summary> /// <param name="expression">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static double StrToDouble(this string expression, int defValue) { if (expression == null) return defValue; double val; if (Double.TryParse(expression.Replace(",", ""), out val)) { return val; } return defValue; } /// <summary> /// string型轉換為double型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static double StrToDouble(this string expression, double defValue) { if (expression == null) return defValue; double val; if (double.TryParse(expression.Replace(",", ""), out val)) { return val; } return defValue; } /// <summary> /// string型轉換為Guid型 /// </summary> /// <param name="strValue">要轉換的字串</param> /// <returns>轉換後的int型別結果</returns> public static Guid? StrToGuid(this string expression) { if (expression == null) return null; Guid val; if (Guid.TryParse(expression, out val)) { return val; } return null; } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="str">要轉換的字串</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static DateTime? StrToDateTime(this string str, DateTime? defValue) { if (!string.IsNullOrEmpty(str)) { DateTime dateTime; if (DateTime.TryParse(str, out dateTime)) return dateTime; } return defValue; } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="str">要轉換的字串</param> /// <returns>轉換後的int型別結果</returns> public static DateTime? StrToDateTime(this string str) { return StrToDateTime(str, null); } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="obj">要轉換的物件</param> /// <returns>轉換後的int型別結果</returns> public static DateTime? ObjToDateTime(this object obj) { return StrToDateTime(obj.ToString()); } /// <summary> /// 將物件轉換為日期時間型別 /// </summary> /// <param name="obj">要轉換的物件</param> /// <param name="defValue">預設值</param> /// <returns>轉換後的int型別結果</returns> public static DateTime? ObjToDateTime(this object obj, DateTime defValue) { return StrToDateTime(obj.ToString(), defValue); } /// <summary> /// 將物件轉換為字串 /// </summary> /// <param name="obj">要轉換的物件</param> /// <returns>轉換後的string型別結果</returns> public static string ObjToStr(this object obj) { if (obj == null) return ""; return obj.ToString().Trim(); } #endregion 物件轉換處理