从字符串名称访问变量

时间:2014-02-06 11:40:44

标签: c# string variables

我正在访问此变量Der,我可以通过本地_der获取或设置该变量。

SetValues获取要更改的参数的字符串名称(以及应将本地列表设置为的列表)

该字符串附带“全局”数据存储名称,我将其更改为本地(Der-> _der)。

现在,我如何在SetValues中将字符串名lParam“转换”为我想要设置的实际本地参数?

希望你明白并且可以提供帮助

[Subscribe]
public StorableList<double> Der{
    get{return _der;}
    set{_der = value;}
}

public static string ConvertToLocalParameter(string input) {
    if (String.IsNullOrEmpty(input)) {
        throw new ArgumentException("ARGH");
    }

    return "_" + char.ToLower(input[0]) + input.Substring(1);
}

public void SetValues(string listName, StorableList<double> values) {
    string lParam = ConvertToLocalParameter(listName);
}

private StorableList<double> _der;

1 个答案:

答案 0 :(得分:0)

如果我理解你是正确的(这是java),你可以使用反射

Field field = MyClass.class.getDeclaredField(lParam);

field.set(this, values);

但如果您只有有限数量的此类值,您可以在方法中使用一些if来设置值


编辑:如果是C#,您可以阅读Reflection in C#