2 qq 36994673 qq_36994673 于 2017.05.19 23:08 提问

C#中如何传入一个字符串参数作为静态变量名 根据字符串调用不同的静态变量。
c#

比如
public void Method(String a,int b)
{
Form1.a=b;
}
有两个静态变量 一个是abc 另一个是asd 传入abc就调用Form.abc 传入asd就调用Form.asd
请问怎么样才能做到。

4个回答

showbo
showbo   Ds   Rxr 2017.05.20 15:17
已采纳

通过反射来获取

http://bbs.csdn.net/topics/190054900

qq_38584967
qq_38584967   2017.05.19 23:11

占楼求助,楼主勿怪。谢谢!(mysql eclipse)
我在数据库建了一个成绩表,然后成绩是用的decimal(5,2)存储的
,然后我在进行sql语句更新的时候懵逼了。我用PreparedStatement对象更新。然后我那个变量是double类型的。执行就报错了,就是把double类型的给予decimal类型错误,但是数据还是更新出来了。
请问怎样才能解决这个问题(或者说不让eclipse报错,因为数据确实能更新)。
pStmt.set...(,)我找不到装换为decimal类型的。求助

qq_38584967
qq_38584967 抱歉,错误已经解决了,decimal是可以接受double类型的。报错不是因为这个。我在更新后的重定向去的页面我忘了传值了。实在是马虎
7 个月之前 回复
chenbaige
chenbaige   Rxr 2017.05.20 09:07

public static final string FLAG1="flag1";
public static final string FLAG2="flag2";
public void Method(String flag)
{
switch(flag){
case FLAG1:
这里写传入变量是第一个静态变量的处理逻辑
break;
case FLAG2:
这里写传入变量是第二个静态变量的处理逻辑
break;
}
}

chenbaige
chenbaige 回复qq_36994673: 不行吧,但是你可以写一个方法根据flag去动态获取Form中的参数值。
7 个月之前 回复
qq_36994673
qq_36994673 有没有办法直接动态的把 FLAG的值接到Form.后面吗
7 个月之前 回复
chenbaige
chenbaige 回复qq_36994673: 必须要用的,case后面的FLAG值是不能改变的,如果能动态改变,那还要那么多case干嘛
7 个月之前 回复
qq_36994673
qq_36994673 回复legendCoder: 不用final没问题吧。。、 刚开始学还不太懂
7 个月之前 回复
chenbaige
chenbaige 回复qq_36994673: 可以的,都是动态的。但是要注意在进行判断的时候Form.flag需要有值才行。
7 个月之前 回复
qq_36994673
qq_36994673 不能通过传入的flag不同来直接调用Form1.flag吗 flag变的时候调用不同的变量
7 个月之前 回复
u014603621
u014603621   2017.05.20 12:48
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!