C# 工具类--类型转换的泛型方法
发布时间:2020-12-15 17:52:03 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace LinqPractice { class Util
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace LinqPractice { class Utility { public static T ConvertDataRow<T>(DataRow dr,string columnName,T defaultValue) { if (dr.Table.Columns.Contains(columnName)) { return ConvertType<T>(dr[columnName],defaultValue); } return default(T); } /// <summary> /// 泛型数据类型转换 /// </summary> /// <typeparam name="T">自定义数据类型</typeparam> /// <param name="value">传入需要转换的值</param> /// <param name="defaultValue">默认值</param> /// <returns></returns> public static T ConvertType<T>(object value,T defaultValue) { try { return (T)ConvertToT<T>(value,defaultValue); } catch { return default(T); } } /// <summary> /// 转换数据类型 /// </summary> /// <typeparam name="T">自定义数据类型</typeparam> /// <param name="myvalue">传入需要转换的值</param> /// <param name="defaultValue">默认值</param> /// <returns></returns> private static object ConvertToT<T>(object myvalue,T defaultValue) { TypeCode typeCode = System.Type.GetTypeCode(typeof(T)); if (myvalue != null) { string value = Convert.ToString(myvalue); switch (typeCode) { case TypeCode.Boolean: bool flag = false; if (bool.TryParse(value,out flag)) { return flag; } break; case TypeCode.Char: char c; if (Char.TryParse(value,out c)) { return c; } break; case TypeCode.SByte: sbyte s = 0; if (SByte.TryParse(value,out s)) { return s; } break; case TypeCode.Byte: byte b = 0; if (Byte.TryParse(value,out b)) { return b; } break; case TypeCode.Int16: Int16 i16 = 0; if (Int16.TryParse(value,out i16)) { return i16; } break; case TypeCode.UInt16: UInt16 ui16 = 0; if (UInt16.TryParse(value,out ui16)) return ui16; break; case TypeCode.Int32: int i = 0; if (Int32.TryParse(value,out i)) { return i; } break; case TypeCode.UInt32: UInt32 ui32 = 0; if (UInt32.TryParse(value,out ui32)) { return ui32; } break; case TypeCode.Int64: Int64 i64 = 0; if (Int64.TryParse(value,out i64)) { return i64; } break; case TypeCode.UInt64: UInt64 ui64 = 0; if (UInt64.TryParse(value,out ui64)) return ui64; break; case TypeCode.Single: Single single = 0; if (Single.TryParse(value,out single)) { return single; } break; case TypeCode.Double: double d = 0; if (Double.TryParse(value,out d)) { return d; } break; case TypeCode.Decimal: decimal de = 0; if (Decimal.TryParse(value,out de)) { return de; } break; case TypeCode.DateTime: DateTime dt; if (DateTime.TryParse(value,out dt)) { return dt; } break; case TypeCode.String: if (!string.IsNullOrEmpty(value)) { return value.ToString(); } break; } } return defaultValue; } } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |