Используя переменную для присвоения свойства в 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
) или любой другой тип свойства.