2015-01-10 5 views
2

Можно ли преобразовать строку в код?
Например, вместо:
Как преобразовать строку в код? (C#)

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

http://stackoverflow.com/questions/17828774/get-resources-with-string – prospector

+0

возможный дубликат [Получить значение свойства из строки, используя отражение в C#] (http://stackoverflow.com/questions/1196991/get-property-value-from-string-using-reflection-in-c-sharp) – mleko

ответ

4

То, что вы пытаетесь сделать, называется Reflection in C#. Вы можете найти сообщение в StackOverflow с образцами кода для него: Get property value from string using reflection in C#

EDIT: Вот пример

 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; 
    } 
+2

это вызванное отражением не только в C# ...;) – DarkSquirrel42

+0

В приведенном выше примере вы могли бы привести пример? – Tom

Смежные вопросы