C# 工具类--类型转换的泛型方法

C# 工具类--类型转换的泛型方法,第1张

概述C# 工具类--类型转换的泛型方法

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

    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;              }          }      }  

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的C# 工具类--类型转换的泛型方法全部内容,希望文章能够帮你解决C# 工具类--类型转换的泛型方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1237638.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存