c #: получить члена класса по имени (отражение) - PullRequest
0 голосов
/ 29 марта 2011

У меня есть два списка (список) l1 & l2.я получаю извне имя списка, который хочу использовать (скажем, l1).

как мне найти запрошенный список?

нужно ли использовать метод getMember?

спасибо

1 Ответ

6 голосов
/ 29 марта 2011

Вы можете использовать отражение, но это довольно дорого.Вот вопрос, который описывает, как это сделать:

C # Reflection: Поиск атрибутов в поле члена

Учитывая, что имя списка известно во время компиляции, вы могли бырассмотрите возможность реализации метода, который принимает строковое имя списка и возвращает ссылку на соответствующий список, используя оператор switch или оператор if.

static IList FindList(string name)
{
  if (name == "l1") { return l1; }
  else if (name == "l2") { return l2; }
  else throw Exception("List " + name + " not found.");
}

Это будет быстрее во время выполнения, чем использование отраженияно требует обслуживания (если у вас достаточно списков, чтобы оправдать усилия, вы можете создать этот метод с помощью кода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...