C# Tool Class--Generic Method for Type Conversion
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace LinqPractice { class Utility { public static T ConvertDataRow(DataRow dr, string columnName,T defaultValue) { if (dr.Table.Columns.Contains(columnName)) { return ConvertType (dr[columnName],defaultValue); } return default(T); } /// /// 泛型数据类型转换 /// ///自定义数据类型 /// 传入需要转换的值 /// 默认值 ///public static T ConvertType (object value,T defaultValue) { try { return (T)ConvertToT (value,defaultValue); } catch { return default(T); } } /// /// 转换数据类型 /// ///自定义数据类型 /// 传入需要转换的值 /// 默认值 ///private static object ConvertToT (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; } } }
The above is the content of C# Tool Class--Generic Method for Type Conversion. For more related content, please pay attention to the PHP Chinese website (www.php .cn)!