private void button1_Click(object sender, EventArgs e)
{
double d = Convert<double>("1234");
Color c = Convert<Color>("Yellow");
}
// 方法一
static T Convert<T>(string str)
{
TypeConverter converter = TypeDescriptor.GetConverter( typeof(T) );
if (converter != null && converter.CanConvertFrom(typeof(string)))
{
return (T)converter.ConvertFrom(str);
}
return default(T);
}
// 方法二,如果传入string typeName,可以Type targetType = Type.GetType( typeName )
static object Convert(Type targetType, string str)
{
TypeConverter converter = TypeDescriptor.GetConverter(targetType);
if( converter != null && converter.CanConvertFrom( typeof(string) ))
{
return converter.ConvertFrom( str );
}
return null;
}
解决方案 »
- 对象赋值的问题,当执行B=A,然后改变B中的一些内容后,结果A也同时进行了改变
- 树形控件,删除当前选中项,语句怎么写?数据用XML存的!
- 将 varchar 值 转换为数据类型为 int 的列时发生语法错误。
- datagridviewcheckboxcolumn列是否可以按选中状态排序?
- 如何快速找到类中从未被引用过的方法?
- 我想在程序里用Excel,请问需要在VS添加一个什么选项?小问题,不过挻急的
- 对路径"....文件"的访问被拒绝
- 如何在网页中提取出QQ号码?
- c# 如何用公钥 解密php rsa加密后的密文
- 万一C#中有资源泄露!?,如何发现?怎么办???
- 求一正则表达式
- 求一正则表达式
因为类型也不知道,尤其是只能用string来描述类型,我卡就卡在这了
但仍然十分感谢你的代码
string p = "12.3";
if (str =="decimal")
Console.WriteLine(Convert.ToDecimal( p));
else if(str=="int")
Console.WriteLine(Convert.ToInt32(p));
Console.Read();
参数string valueif(type.trim() == "double")
{
double v;
if(double.Trypars(value,out v))
return (object)v;
}
else if(...)
{
...
语言用的是c#