class test
{
public string datatype;
public object datavalue;
}
datatype: 只能等于各种类型的字符串如"System.Int32","System.String"等。
datavalue: 装着相应的值如果datatype = "System.Int32"的话,datavalue = 256等,datatype = "System.String"的话,datavalue 的值就为字符串。我的问题是怎样自动的将datavalue的值转换成datatype相对应的数据?
{
public string datatype;
public object datavalue;
}
datatype: 只能等于各种类型的字符串如"System.Int32","System.String"等。
datavalue: 装着相应的值如果datatype = "System.Int32"的话,datavalue = 256等,datatype = "System.String"的话,datavalue 的值就为字符串。我的问题是怎样自动的将datavalue的值转换成datatype相对应的数据?
解决方案 »
- 现在自己能写出类似aspnerpager功能的控件水平算一般还是中上?
- 求教,如何在页面中直接打开html格式的文件?
- 怎么吧datatable数据写到内存中?
- IT者网站ASP.NET频道每日文章(不断更新)
- asp .net 控件问题 象windows属性页中的那种页操作控件在asp .net中是那个控件怎么使用!
- 100分求Aspx中对Access分页的方案
- 有福建泉州或者厦门的朋友吗
- 高手快请进啊,我有问题,急
- 检索 COM 类工厂中 CLSID 为 {******} 的组件失败
- 圈子里的兄弟对PHP的印象怎样?如何说服公司领导使用.NET而不是PHP
- 网上选修课系统问题。
- 水晶报表打包部署的问题
object obj = "testtfdsa";
string str = (System.String)obj;但像下面转换系统就报错
object obj = "testtfdsa";
string str = Type.GetType("System.String")obj;
Type t= Type.GetType("System.String");
//Type t= Type.GetType("System.Int32"); if(t.ToString().Equals("System.String"))
{ o = "aaa";
Console.WriteLine(o);
}else
if(t.ToString().Equals("System.Int32"))
{ o = 32;
Console.WriteLine(o);
}
{
case "System.String":
...
break;
case "System.Int32":
...
break;
case "System.Decimal":
...
break;
}因为这样写ms要是新加一个类型,我就又要改程序了。请问,有没有别的好办法
{
case "System.String":
...
break;
case "System.Int32":
...
break;
case "System.Decimal":
...
break;
}因为这样写ms要是新加一个类型,我就又要改程序了。请问,有没有别的好办法
其实我觉得这样写是最好的,你加个"//TODO:微软加类型我要修改啊"在后面。
微软加1个你也加一个,有TODO这个“关键字”在怕什么,反正在任务里它就摆着,微软加一次,你也就双击一下而已就找到了。改程序不怕改代码,怕的是改漏,不知道改哪里和找不到。
Type type = Type.GetType(t.datatype,false,true);
// 或者 Type.GetType("system." + t.datatype,false,true);
return Convert.ChangeType(t.datavalue,type);这种程序只能支持实现了IConvertible的类型
不可能支持所有类型的