zoukankan      html  css  js  c++  java
  • C# TypeDescriptor获取类型转换器,实现泛型转换

    需求背景

    平时的coding过程中,经常性遇到string类型转换成其他的基本类型,如 int double bool等,那我们正常的方式就是下面的方式进行类型转换

    int.Parse("111");
    bool.Parse("true");
    

    那我们有没有其他方式统一这个转换方式呢?

    TypeDescriptor实现统一转换

    下面我就写了一个string的扩展方法

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Linq;
    using System.Text;
    
    namespace Common.Extensions
    {
        public static class StringExtension
        {
            public static T Convert<T>(this string input)
            {
                try
                {
                    var converter = TypeDescriptor.GetConverter(typeof(T));
                    if (converter != null)
                    {
                        return (T)converter.ConvertFromString(input);
                    }
                    return default(T);
                }
                catch (Exception)
                {
                    return default(T);
                }
            }
    
            public static object Convert(this string input, Type type)
            {
                try
                {
                    var converter = TypeDescriptor.GetConverter(type);
                    if (converter != null)
                    {
                        return converter.ConvertFromString(input);
                    }
                    return null;
                }
                catch (Exception)
                {
                    return null;
                }
            }
    
        }
    }
    
    

    实现这个方法后,使用其他就会很方便

    "111".Convert<double>();
    "True".Convert<bool>();
    
  • 相关阅读:
    使用air16sdk打包ipa报错
    笔试题目
    网络编程Socket之UDP
    网络编程Socket之TCP
    Spring的HelloWorld
    一起学makefile
    使用Eclipse创建Hibernate工程
    log4j日志输出使用教程
    监听tomcat服务器启动/关闭并从配置文件中读取参数进行初始化
    java加载配置文件
  • 原文地址:https://www.cnblogs.com/liuww/p/9359412.html
Copyright © 2011-2022 走看看