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

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

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

登录后复制

 以上就是c# 工具类–类型转换的泛型方法的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2445184.html

(0)
上一篇 2025年3月3日 14:56:19
下一篇 2025年2月26日 00:29:40

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论