zoukankan      html  css  js  c++  java
  • 将类型(int,string,…)转换为 T 类型

    方法定义:

    private static T GetValueByKey<T>(string key) where T : IConvertible
    {
    T localVal=default(T);

    string strType = typeof(T).Name;
    string valuesData = ConfigurationManager.AppSettings[key].ToString();

    localVal = (T)Convert.ChangeType(valuesData, typeof(T));

    return localVal;

    }

    public static TConvertType DoConvert<TConvertType>(object convertValue, out bool hasConverted)
    {
        hasConverted = false;
        var converted = default(TConvertType);
        try
        {
            converted = (TConvertType) 
                Convert.ChangeType(convertValue, typeof(TConvertType));
            hasConverted = true;
        }
        catch (InvalidCastException)
        {
        }
        catch (ArgumentNullException)
        {
        }
        catch (FormatException)
        {
        }
        catch (OverflowException)
        {
        }
    
        return converted;
    }

    写法二:


    public static TConvertType DoConvert<TConvertType>(object convertValue, out bool hasConverted)
    {
    hasConverted = false;
    var converted = default(TConvertType);
    try
    {
    converted = (TConvertType)
    Convert.ChangeType(convertValue, typeof(TConvertType));
    hasConverted = true;
    }
    catch (InvalidCastException)
    {
    }
    catch (ArgumentNullException)
    {
    }
    catch (FormatException)
    {
    }
    catch (OverflowException)
    {
    }

    return converted;
    }

     

     

    调用:

    GetValueByKey<string>("aaa"); 

    GetValueByKey<int>("bbb"); 

    参考:http://stackoverflow.com/questions/8171412/cannot-implicitly-convert-type-int-to-t

  • 相关阅读:
    cnpm镜像安装
    wxParse解析html
    C++回调函数
    QT源码分析:QTcpServer
    QT实现支持加密的Sqlite数据库引擎
    VS2013+OpenCV3.4.2编译
    Android Tcp操作
    使用Delphi开发linux应用
    QT5.10+MinGW+OpenCV3.4.2编译
    C++ ActiveX开发的问题讨论
  • 原文地址:https://www.cnblogs.com/shouwu/p/4958008.html
Copyright © 2011-2022 走看看