C#中,如果一个变量的值和这个变量类型都保存在字符串里,怎样才能根据类型和值得到这个变量?具体做法是

例如:stringstrValue="1";stringstrType="int";inti=0;怎样才能将strValue的值转化为strType中类型的值,然后保存到... 例如:
string strValue="1";
string strType="int";
int i=0;
怎样才能将strValue的值转化为strType中类型的值,然后保存到i中?(如果用反射,具体应如何编码)
另外的一种情况:
string strValue1="1";
string strType1="int";
string strValue2="true";
string strType2="bool";
怎样通过一个公用的函数将strValue1,strValue2的值分别转化为strType1,strType2中类型的值,或者如何用反射,具体应如何编码?
展开
 我来答
思念天灵
2011-01-13 · TA获得超过199个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:108万
展开全部
局部变量是不能使用反射的。反射只能用于类中的属性、变量、字段和方法。你的程序可以直接这样处理就行了:
string strValue="1";
string strType="int";
int i=0;

i = Convert.ToInt32(strValue);

若非要使用反射可以这样:
class Program
{
static void Main(string[] args)
{
new tt();
}
}

class tt
{
public string strValue = "1";
public string strType = "int";
public int i = 0;

public tt()
{
Type type = this.GetType();
FieldInfo fi = type.GetField("strValue");
this.i = Convert.ToInt32(fi.GetValue(this));

Console.WriteLine("i的值{0}", i);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
matrixkey
2011-01-13 · TA获得超过277个赞
知道答主
回答量:163
采纳率:0%
帮助的人:168万
展开全部
难道根据所有的数据类型用switch case来判断和转换吗~
我只能想到这个笨方法。。
switch(strType){
case "int":
int mat = int.parse(strValue);
......
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式