c# 类型转换函数

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# 类型转换函数

上一篇:Windows核心编程笔记(3)--作业


下一篇:winform 指定控件区域截图(比如截取窗体中的某个Panel区域)