2013-06-28 2 views
1
public class Car 
{ 
    public string Color { get; set; } 
    public string Model { get; set; } 
} 

Как я называю «Car.Color» или «Car.Model» из переменной?C# Вызов переменной из другой переменной

Ex.

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

С уважением.

+1

Вы хотите отражение или словарь. – SLaks

+1

Просто, чтобы прояснить кого-нибудь еще (мне понадобилось минутку, чтобы понять). Я думаю, он спрашивает об использовании отражения для поиска свойства, выбранного в «MyVariable», и добавляет его в список. –

+1

Вы используете Winforms или WPF? Связывание - это решение, но оно зависит от того, что вы используете. –

ответ

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, заметьте Дитто MyVariable который не делает. выглядите как переменная в обычных соглашениях об именах .NET.)

+0

Очень спасибо за вашу помощь. (Я изучаю C Sharp). –

+0

@karmany: Стоит отметить, что это то, что вы не хотите делать большую часть времени. У нас действительно нет достаточного контекста, чтобы узнать, является ли это наиболее подходящим подходом * здесь *, или будет ли связывание лучше, как предложил Скотт. –

+0

Автомобиль - результат запроса (LINQ to Dataset). Когда пользователь выбирает поле «Цвет» (в запросе), я хочу заполнить список (MyListBox) только полем «Цвет». –

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