ConvertHelper.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /* 作者: 季健国
  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. namespace Ant.Service.Common
  10. {
  11. /// <summary>
  12. /// 强制转化辅助类(无异常抛出)
  13. /// </summary>
  14. public static class ConvertHelper
  15. {
  16. #region 强制转化
  17. /// <summary>
  18. /// object转化为Bool类型
  19. /// </summary>
  20. /// <param name="obj"></param>
  21. /// <returns></returns>
  22. public static bool ObjToBool(this object obj)
  23. {
  24. bool flag;
  25. if (obj == null)
  26. {
  27. return false;
  28. }
  29. if (obj.Equals(DBNull.Value))
  30. {
  31. return false;
  32. }
  33. return (bool.TryParse(obj.ToString(), out flag) && flag);
  34. }
  35. /// <summary>
  36. /// object强制转化为DateTime类型(吃掉异常)
  37. /// </summary>
  38. /// <param name="obj"></param>
  39. /// <returns></returns>
  40. public static DateTime? ObjToDateNull(this object obj)
  41. {
  42. if (obj == null)
  43. {
  44. return null;
  45. }
  46. try
  47. {
  48. return new DateTime?(Convert.ToDateTime(obj));
  49. }
  50. catch //(ArgumentNullException ex)
  51. {
  52. return null;
  53. }
  54. }
  55. /// <summary>
  56. /// int强制转化
  57. /// </summary>
  58. /// <param name="obj"></param>
  59. /// <returns></returns>
  60. public static int ObjToInt(this object obj)
  61. {
  62. if (obj != null)
  63. {
  64. int num;
  65. if (obj.Equals(DBNull.Value))
  66. {
  67. return 0;
  68. }
  69. if (int.TryParse(obj.ToString(), out num))
  70. {
  71. return num;
  72. }
  73. }
  74. return 0;
  75. }
  76. /// <summary>
  77. /// 强制转化为long
  78. /// </summary>
  79. /// <param name="obj"></param>
  80. /// <returns></returns>
  81. public static long ObjToLong(this object obj)
  82. {
  83. if (obj != null)
  84. {
  85. long num;
  86. if (obj.Equals(DBNull.Value))
  87. {
  88. return 0;
  89. }
  90. if (long.TryParse(obj.ToString(), out num))
  91. {
  92. return num;
  93. }
  94. }
  95. return 0;
  96. }
  97. /// <summary>
  98. /// 强制转化可空int类型
  99. /// </summary>
  100. /// <param name="obj"></param>
  101. /// <returns></returns>
  102. public static int? ObjToIntNull(this object obj)
  103. {
  104. if (obj == null)
  105. {
  106. return null;
  107. }
  108. if (obj.Equals(DBNull.Value))
  109. {
  110. return null;
  111. }
  112. return new int?(ObjToInt(obj));
  113. }
  114. /// <summary>
  115. /// 强制转化为string
  116. /// </summary>
  117. /// <param name="obj"></param>
  118. /// <returns></returns>
  119. public static string ObjToStr(this object obj)
  120. {
  121. if (obj == null)
  122. {
  123. return "";
  124. }
  125. if (obj.Equals(DBNull.Value))
  126. {
  127. return "";
  128. }
  129. return Convert.ToString(obj);
  130. }
  131. /// <summary>
  132. /// Decimal转化
  133. /// </summary>
  134. /// <param name="obj"></param>
  135. /// <returns></returns>
  136. public static decimal ObjToDecimal(this object obj)
  137. {
  138. if (obj == null)
  139. {
  140. return 0M;
  141. }
  142. if (obj.Equals(DBNull.Value))
  143. {
  144. return 0M;
  145. }
  146. try
  147. {
  148. return Convert.ToDecimal(obj);
  149. }
  150. catch
  151. {
  152. return 0M;
  153. }
  154. }
  155. /// <summary>
  156. /// Decimal可空类型转化
  157. /// </summary>
  158. /// <param name="obj"></param>
  159. /// <returns></returns>
  160. public static decimal? ObjToDecimalNull(this object obj)
  161. {
  162. if (obj == null)
  163. {
  164. return null;
  165. }
  166. if (obj.Equals(DBNull.Value))
  167. {
  168. return null;
  169. }
  170. return new decimal?(ObjToDecimal(obj));
  171. }
  172. #endregion
  173. /// <summary>
  174. /// 利用反射来判断对象是否包含某个属性
  175. /// </summary>
  176. /// <param name="instance">object</param>
  177. /// <param name="propertyName">需要判断的属性</param>
  178. /// <returns>是否包含</returns>
  179. public static bool ContainProperty(this object instance, string propertyName)
  180. {
  181. if (instance != null && !string.IsNullOrEmpty(propertyName))
  182. {
  183. System.Reflection.PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);
  184. return (_findedPropertyInfo != null);
  185. }
  186. return false;
  187. }
  188. }
  189. }