码迷,mamicode.com
首页 > Windows程序 > 详细

c# 类型转换函数

时间:2015-01-26 16:59:58      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

c#中有统一的类型转换函数

Convert.ChangeType(object value, Type conversionType)

但是这个函数没有考虑到转换null, DBNull, Nullable<>, Enum这些类型

下面通过扩展ChangeType来实现上述类型的转换

        public static object Convert(object value, Type conversionType)
        {
            if (value == null || value is DBNull)
                return null;
            if (conversionType.IsInstanceOfType(value))
                return value;
            if (conversionType.IsEnum)
            {
                var s = value as string;
                if (s != null)
                {
                    return Enum.Parse(conversionType, s);
                }
                return Enum.ToObject(conversionType, value);
            }
            var t = Nullable.GetUnderlyingType(conversionType) ?? conversionType;
            return System.Convert.ChangeType(value, t);
        }

  

 

c# 类型转换函数

标签:

原文地址:http://www.cnblogs.com/vuuvv/p/4250623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!