zoukankan      html  css  js  c++  java
  • 通用数据类型转换函数针对基元类型的包括可空类型

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

  • 相关阅读:
    JSP中<base href="<%=basePath%>">作用
    转 jdk1.5新特性 ConcurrentHashMap
    单例设计模式与类加载顺序详解
    归并排序-java
    插入排序-java
    冒泡排序-java
    选择排序-java
    JS的object数据类型
    JS的事件
    JS的捕捉回车键
  • 原文地址:https://www.cnblogs.com/wdfrog/p/2676232.html
Copyright © 2011-2022 走看看