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

kar*_*y   1 c# variables

public class Car
 {
     public string Color { get; set; }
     public string Model { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

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

防爆.

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

问候.

Jon*_*eet 11

你必须使用反射.例如:

var property = typeof(Car).GetProperty(MyVariable);
MyListBox.Items.Add(property.GetValue(Car)); // .NET 4.5
Run Code Online (Sandbox Code Playgroud)

要么:

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

(如果你的变量使用不同的名称示例代码会更清晰Car比类型Car,请不要忘记.同上MyVariable它看起来并不像正常的.NET命名约定的变量.)

  • @karmany:那听起来像你应该*使用绑定代替.根据查询设置显示属性,但实际上使用完整的"Car"引用填充列表框. (2认同)