По обычным причинам мне нужно использовать некоторые константы в моем приложении.
Подходы, которые я рассмотрел:
1) Объявить Enum:
public enum myOptions
{
MyOption1 = 72,
MyOption2 = 31,
MyOption3 = 44
}
Хотя это хорошо для программирования, и я могу связать enum напрямую с DDL, но «имена» Enum ужасны, когда пользователь их видит - пользователь увидит «MyOption1», а я хочу, чтобы они увидели » Мой вариант № 1 ".
2) Использовать список:
public static List<KeyValuePair<int, string>> myOptions = new List<KeyValuePair<int, string>>
{
new KeyValuePair<int, string>(77, "My Option #1"),
new KeyValuePair<int, string>(31, "My Option #2"),
new KeyValuePair<int, string>(44, "My Option #3")
}
Так что, хотя это очень хорошо связывается с DDL, дает мне хорошее отображаемое значение, а также целочисленное возвращаемое значение, у меня нет ничего, с чем можно было бы проверить мое возвращаемое значение. Так, например:
if (selectedOption=????) //I'd have to hardcode the Key or Value I want to test for.
3) Я мог бы создать хорошую сборку Global / Constants:
static myOptions
{
public static KeyValuePair<int, string> MyOption1 = new new KeyValuePair<int, string>(77, "My Option #1");
public static KeyValuePair<int, string> MyOption2 = new new KeyValuePair<int, string>(31, "My Option #2");
public static KeyValuePair<int, string> MyOption3 = new new KeyValuePair<int, string>(44, "My Option #3");
}
То, что дает мне хорошие отображаемые имена, приятно кодировать, но, насколько я могу судить, у меня нет способа легко связать это с DDL (я должен был бы вручную кодировать это).
Есть ли у кого-нибудь элегантный способ создания констант, которые легко связаны с DDL, где у меня может быть хорошее отображаемое имя?
Прямо сейчас единственное, о чем я могу думать, - это создание ОБА Enum и Списка, что кажется раздражающим.