• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

c# 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论

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

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)            {<strong style="color:transparent">本文来源gaodai#ma#com搞@@代~&码*网/</strong>                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;        }    }}

以上就是C# 工具类–类型转换的泛型方法的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C# 工具类–类型转换的泛型方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址