Просто мое tuppence ... если вы собираетесь использовать литералы ("Home"), то я бы абсолютно привязался к const
, т.е. Pages.Home
(они, вероятно, должны быть константами в данном примере). Подход отражения может быть полезен, если у вас есть:
string s = ...something clever...
string page = GetPage(s);
Если вы делаете переключение на const
, обратите внимание, что они проявляются как статические поля:
string s = ...something clever...
FieldInfo field = typeof(Pages).GetField(s,
BindingFlags.Static | BindingFlags.Public);
string page = (string)field.GetValue(null);
Если он используется интенсивно, вы также можете кэшировать его в словаре.