给定一个与对象字段同名的字符串,如何获取对象字段的引用?
例如,假设我向 GetFieldByStr 方法传入一个名为“field1”的字符串,并且该对象具有字段名称 field1,那么如何获取对 field1 对象的引用?我假设以某种方式使用反射。
class Example {
private FieldExample attr1;
void GetFieldByStr(String str) {
// We get passed in "field1" as a string, now I want
// to get the field1 attribute.
}
}
你需要使用反射 http://msdn.microsoft.com/en-us/library/f7ykdhsy.aspx:
FieldInfo field = typeof(Example).GetField(str);
object value = field.GetValue(this);
(对于属性,请使用PropertyInfo
)
注意value
是一个对象;为了用它做任何有用的事情,您需要将其转换为某个类或接口(或使用dynamic
在 C# 4) 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)