撸码时碰到一个问题:需要通过一个字符串来动态调用对象(string里是一个已有的对象的Name)。 直接上代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
string objNameStr = "lab";
Object obj = this.GetType().GetField(objNameStr,
System.Reflection.BindingFlags.NonPublic
|System.Reflection.BindingFlags.Instance
|System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
Label aaa = (Label)obj; //(Label)obj点不出Content所以随便建了个变量
aaa.Content = "通过反射将string值当作对象名称使用";
}
Label 的Name 属性为 lab
效果大概是这样:
通过字符串"lab"修改了对象lab的显示内容