Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / C#把对象类型转化为指定类型,转化失败时返回该类型默认值

C#把对象类型转化为指定类型,转化失败时返回该类型默认值/// <summary>
   ///通用类型扩展方法类
    /// </summary>
   public static class ObjectExtensions
   {
       /// <summary>
       ///把对象类型转化为指定类型,转化失败时返回该类型默认值
        /// </summary>
       /// <typeparam name="T"> 动态类型 </typeparam>
       /// <param name="value"> 要转化的源对象 </param>
       /// <returns> 转化后的指定类型的对象,转化失败返回类型的默认值 </returns>
       public static T CastTo<T>(this object value)
       {
           object result;
           Type type = typeof(T);
           try
           {
               if (type.IsEnum)
               {
                   result = Enum.Parse(type, value.ToString());
               }
               else if (type == typeof(Guid))
               {
                   result = Guid.Parse(value.ToString());
               }
               else
               {
                   result = Convert.ChangeType(value, type);
               }
           }
           catch
           {
               result = default(T);
           }            return (T)result;
       }        /// <summary>
       ///   把对象类型转化为指定类型,转化失败时返回指定的默认值
        /// </summary>
       /// <typeparam name="T"> 动态类型 </typeparam>
       /// <param name="value"> 要转化的源对象 </param>
       /// <param name="defaultValue"> 转化失败返回的指定默认值 </param>
       /// <returns> 转化后的指定类型对象,转化失败时返回指定的默认值 </returns>
       public static T CastTo<T>(this object value, T defaultValue)
       {
           object result;
           Type type = typeof(T);
           try
           {
               result = type.IsEnum ? Enum.Parse(type, value.ToString()) : Convert.ChangeType(value, type);
           }
           catch
           {
               result = defaultValue;
           }
           return (T)result;
       }
   }C#多线程编程实例 线程与窗体交互【附源码】 http://www.linuxidc.com/Linux/2014-07/104294.htmC#数学运算表达式解释器 http://www.linuxidc.com/Linux/2014-07/104289.htmC++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码 http://www.linuxidc.com/Linux/2014-05/101227.htm本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-09/106623.htm