将类型(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

时间: 2024-10-13 12:33:54

将类型(int,string,…)转换为 T 类型的相关文章

Java:String转换为date类型

public static Date stringToDate(String str) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { // Fri Feb 24 00:00:00 CST 2012 date = format.parse(str); } catch (ParseException e) { e.printStackTrace(); } // 2012-0

将字符串类型的数组转换为数组类型数组

/** * 将字符串转换为数组 * * @param    string    $data    字符串 * @return    array    返回数组格式,如果,data为空,则返回空数组 */ function string2array($data) { if($data == '') return array(); @eval("\$array = $data;"); return $array; }

C++ String和其他类型互换

在C++中如何实现String和其他类型互换呢?最好的方式是使用stringstream,下面简单介绍下: 1.其他类型转换为String #include <sstream> stringstream sstr; string s1; s1.append("string "); sstr << 12; //sstr >> s1; //这样的结果是把原来string的值冲掉了 s1 += sstr.str(); //这样不会改变原来的值 sstr.c

C++.【转】C++数值类型与string的相互转换

1.C++数值类型与string的相互转换 - JohnGu - 博客园.html(https://www.cnblogs.com/johngu/p/7878029.html) 2. 1.数值类型转换为string 1.1使用函数模板+ostringstream 使用函数模板将基本数据类型(整型.字符型.实型.布尔型)转换成string. 1 2 3 4 5 6 7 8 9 10 11 12 //ostringstream对象用来进行格式化的输出,常用于将各种类型转换为string类型 //os

int类型和byte类型的强制类型转换

今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到InputStream的抽象方法read时,说到read返回一个int型,但实际是一个byte型的数据.这点从API也能考证.如图: 那么问题来了,int占4个字节,byte占1个字节,我们循环读取的时候将int型数组强制类型转换成byte时,会发生什么情况呢?代码如下: 1个字节占8位,既然实际返回的是byte

int 和 str bool 类型

1 int类型 int > str 2 bool类型 3  str类型 1) upper() 改为大写 例如: s = "sjdklsk" s1 =s.upper(s) print(s1) 结果:SJDKLSK 2)lower() 改为小写 例如: s = "SjDklsK" s1 = s.lower(s) print(s1) 结果:sjdklsk 3) replace() 替换 s = "小猪佩奇,胡图图,旅游" s1 = replace

上手并过渡到PHP7(2)——必须传递int, string, bool参数?没问题

Type hints, Type safe 泊学实操视频 泊学原文链接PHP 7中最引人注目的新特性之一,无疑是Scalar type hints.我们可以在函数参数和返回值中使用scalar type hints,还可以指定scalar type的推导和匹配方式. Scalar type hints Type hints并不是什么新生事物,PHP 5.0第一次引入了type hints特性,允许我们指定函数的参数是一个特定class或interface类型.之后,在PHP 5.1中,我们可以指

java -------- String类型转换为数字类型

将 String类型转换为数字类型的时候要注意,数据类型的范围 整型: byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1) int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1) long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的6

asp.net MVC Model 类的主键 int类型、string类型、GUID类型。

在使用asp.net mvc进行定义 模型类的时候,一般情况下,我们都会定义一个属性为 int iD{get;set;} 或为int ClassNameID {get;set;},在这种情况下 1.Int类型主键 EF的默认约定就是第一个属性如果是类名+id或是id(这两情况下id字母大小写没有关系),并且是int类型的,那么直接设置第一个属性为主键,同时设置自增长.不需要指定[Key]关键字(在 System.ComponentModel.DataAnnotations.Schema命名空间下