中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

C# 工具類--類型轉(zhuǎn)換的泛型方法

2018-07-20    來源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用
    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>  
            /// 泛型數(shù)據(jù)類型轉(zhuǎn)換  
            /// </summary>  
            /// <typeparam name="T">自定義數(shù)據(jù)類型</typeparam>  
            /// <param name="value">傳入需要轉(zhuǎn)換的值</param>  
            /// <param name="defaultValue">默認(rèn)值</param>  
            /// <returns></returns>  
            public static T ConvertType<T>(object value,T defaultValue)  
            {  
                try  
                {  
                    return (T)ConvertToT<T>(value,defaultValue);  
                }  
                catch  
                {  
                    return default(T);  
                }  
            }  
            /// <summary>  
            /// 轉(zhuǎn)換數(shù)據(jù)類型  
            /// </summary>  
            /// <typeparam name="T">自定義數(shù)據(jù)類型</typeparam>  
            /// <param name="myvalue">傳入需要轉(zhuǎn)換的值</param>  
            /// <param name="defaultValue">默認(rèn)值</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;  
            }  
        }  
    }  

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:通過JAVA NIO實(shí)現(xiàn)Socket服務(wù)器與客戶端功能

下一篇:Ajax之DWR學(xué)習(xí)