我有文件:dvars.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GSM
{
public static class dvar
{
static int _pspeed = 2;
public static int pspeed
{
get
{
return _pspeed;
}
set
{
_pspeed = value;
}
}
}
}
我希望能够使用字符串来定义它(例如,在另一个文件中我想使用字符串作为变量名来设置dvar.pspeed):
string mystring = "pspeed";
dvar.mystring = 1;
有人知道我该怎么做吗?
答案 0 :(得分:2)
我认为你可以使用反射来做到这一点。
String mystring = "pspeed";
PropertyInfo pi = typeof(dvar).GetProperty(mystring);
pi.SetValue(dvar, 1, new Object[0]);
答案 1 :(得分:1)
你不能这样做,但你可以使用索引器包装字典:
public static class Dvar
{
private static IDictionary<string, int> map = new Dictionary<string, int>();
public static int this[string key]
{
get { return map[key]; }
set { map[key] = value; }
}
}
并像这样使用它:
Dvar["pspeed"] = 1;
答案 2 :(得分:0)
如果需要验证,可以使用Int32.Parse()方法或(TryParse())。