C#从另一个变量调用变量

时间:2013-06-28 17:59:53

标签: c# variables

public class Car
 {
     public string Color { get; set; }
     public string Model { get; set; }
 }

我如何从变量中调用“Car.Color”或“Car.Model”?

实施例

string MyVariable = "Color";
MyListBox.Items.Add(Car.Model); //It Works Ok
MyListBox.Items.Add(Car.MyVariable); // How??

问候。

1 个答案:

答案 0 :(得分:11)

你必须使用反射。例如:

var property = typeof(Car).GetProperty(MyVariable);
MyListBox.Items.Add(property.GetValue(Car)); // .NET 4.5

或者:

var property = typeof(Car).GetProperty(MyVariable);
MyListBox.Items.Add(property.GetValue(Car, null)); // Prior to .NET 4.5

(如果您使用变量Car的名称而不是类型Car,则您的示例代码会更清晰。请注意,Ditto MyVariable看起来不像变量在正常的.NET命名约定中。)