这是我第一次在C#/.NET中做这样的事情,它让我想起了JavaScript中可以使用eval()函数或动态编写脚本和生成HTML所能轻松完成的事情。我有一个来自用户输入的字符串,例如string input = "foo"
。现在我想以这个值"foo"
作为我拥有的对象(如cover
)的属性名:
string input = "foo";
//magic to convert string value to be used
//as a object property name goes here maybe...
var success = cover.foo;
在C#中有没有一种方法可以做到这一点?可能使用反射?我已经尝试过了,但总是得到一个并不能真正解决我的问题的对象。
var success = cover.GetType().GetProperty(input).GetValue(cover)
,虽然你可能想要接受预期返回类型的GetProperty
版本等等,而且你也应该小心异常和错误情况。 - Rup