Используя переменную для присвоения свойства в C#?

У меня есть некоторые свойства, установленные в настройках приложения aC#. Я использую их для хранения строки. Моя проблема в том, что я хочу вызывать их в зависимости от имени переменной класса.

Поэтому я хочу сделать что-то вроде этого

Description = Properties.Settings.Default.(name + "Description");

Это возможно? Или я должен написать неприятный оператор switch, основанный на свойстве name?

Swith(name)
case:name1 
 Description = properties.settings.default.name1Descrition;

1 ответ

Решение

Предполагая, что вы говорите о Winforms, Properties.Settings.Default это индексируемая коллекция, поэтому вам просто нужно получить ее по ключу:

var Description = Properties.Settings.Default[name + "Description"] as string;

Вам не нужно использовать отражение, его можно получить в любом случае. Вы близки в своем первом предположении.

Использование индексатора для получения значения всегда возвращает object так что вам нужно привести его к окончательному типу (as string) или любой другой тип свойства.

Другие вопросы по тегам