• 通用数据类型转换函数针对基元类型的包括可空类型


            protected T TryParser<T>(object v, T dValue)
            {
    
                if (v == null)
                {
                    return dValue;
                }
                else
                {
                    T t = default(T);
                    try
                    {
                        if (t == null)//可空类型
                        {
                            Type type = typeof(T);
    
                            TypeConverter conv = TypeDescriptor.GetConverter(type);
                            t = (T)conv.ConvertFrom(v);
                        }
                        else
                        {
    
                            t = (T)Convert.ChangeType(v, typeof(T));
                        }
                    }
                    catch
                    {
    
                        t = dValue;
                    }
                    return t;
                }
            }
            protected T TryParser<T>(string v, T dValue)
            {
                if (string.IsNullOrEmpty(v))
                {
                    return dValue;
                }
                else
                {
                    T t = default(T);
                    try
                    {
                        if (t == null)//可空类型
                        {
                            Type type = typeof(T);
    
                            TypeConverter conv = TypeDescriptor.GetConverter(type);
                            t = (T)conv.ConvertFrom(v);
                        }
                        else
                        {
    
                            t = (T)Convert.ChangeType(v, typeof(T));
                        }
                    }
                    catch
                    {
    
                        t = dValue;
                    }
                    return t;
                }
            }

    判断可空类型

    bool IsNullableType(Type theType)
    {
        return (theType.IsGenericType && theType.
          GetGenericTypeDefinition().Equals
          (typeof(Nullable<>)));
    }

    可空类型的测试

     //====转换成string 表示形式========

            public static string ConverToStr(object obj)
            {
     
                if (obj.GetType().IsPrimitive || obj is string )
                {
                    return obj.ToString();
                }
                if(IsNullable(obj.GetType()))
                {
                    return obj.ToString();
                }
                //执行xml序列化
                XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
                StringBuilder sb = new StringBuilder();
                xmlSerializer.Serialize(new StringWriter(sb), obj);

                return sb.ToString();
            }
            private static bool IsNullable(Type t)
            {
                return t.IsGenericType && t.GetGenericTypeDefinition()==typeof(Nullable<>);
            }

  • 相关阅读:
    thinkphp tp5 常用 functions
    nginx配置虚拟机 vhost 端口号 域名 区分虚拟机
    thinkphp tp5 模板 引擎 字符串 截取 函数 省略 显示
    C++运算符重载
    c++纯虚函数
    c++面向对象模型---c++如何管理类,对象以及它们之间的联系
    c++多态
    c++友元函数
    c语言的函数指针
    c++两种字符串赋值方式 并介绍 C语言下遍历目录文件的方式
  • 原文地址:https://www.cnblogs.com/wdfrog/p/2676232.html
Copyright © 2020-2023  润新知