.net擴充套件方法——型別轉換
阿新 • • 發佈:2020-08-13
.net擴充套件方法——型別轉換
- ObjToBool:object型轉換為bool型
- StrToBool:string型轉換為bool型
- ObjToInt:將物件轉換為Int32型別
- StrToInt:將字串轉換為Int32型別
- StrToIntNull
- ObjToDecimal
- StrToDecimal
- StrToDecimalNull
- ObjToDouble
- StrToDouble
- StrToGuid
- StrToDateTime
- ObjToDateTime
- 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 物件轉換處理