是否可以将字符串转换为代码?
例如,而不是:
string foo = "bar";
...
switch(foo){
case "bar":
pictureBox.Image = Project.Properties.Resources.bar;
break;
...
}
有没有办法简单地说:
string foo = "bar"
pictureBox.Image = Project.Properties.Resources.<foo string goes in here>;
我希望这个例子有意义。
答案 0 :(得分:4)
你要做的是在C#中称为反射。您可以在StackOverflow中找到包含代码示例的帖子:Get property value from string using reflection in C#
编辑:这是示例
string foo = "bar";
var resources = Project.Properties.Resources;
object o = resources.GetType().GetProperty(foo).GetValue(resources, null);
if (o is System.Drawing.Image) {
pictureBox.Image = (System.Drawing.Image) o;
}