Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / enum / 7 сообщений из 7, страница 1 из 1
25.09.2018, 16:14
    #39707806
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
есть перечисления:
Код: c#
1.
2.
3.
4.
5.
6.
enum Lang
    {
        RU,
        UA,
        KZ
    }



в коде нужно преобразовывать к string
Код: c#
1.
SystemAlias = Lang.RU.ToString();



можно ли как-то сразу указать, что эти константы типа string, чтобы избежать постоянных преобразований
...
Рейтинг: 0 / 0
25.09.2018, 18:01
    #39707913
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
Нет, константы в коде должны инициализироваться значением, определяемым на этапе компиляции - на то они и константы - а ToString выполняется на рантайме.
Можно вместо константы использовать, например, static get-only property:
Код: c#
1.
public static string SystemAlias { get; } = Lang.RU.ToString();
...
Рейтинг: 0 / 0
25.09.2018, 18:31
    #39707927
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
константы с модификатором Public лучше вообще не использовать, а то будет мучительно больно, в 1 момент
...
Рейтинг: 0 / 0
25.09.2018, 19:22
    #39707950
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
NewIvanovec,
Обрисуйте задачу. Может и варианты решения расширятся.
Зачем enum в string?
...
Рейтинг: 0 / 0
26.09.2018, 07:51
    #39708139
Кифирчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
Код: c#
1.
SystemAlias = nameof(Lang.RU)
...
Рейтинг: 0 / 0
26.09.2018, 08:39
    #39708151
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
NewIvanovecможно ли как-то сразу указать, что эти константы типа string, чтобы избежать постоянных преобразований

Можно.

Код: c#
1.
2.
3.
4.
5.
6.
public static class Lang
{
   public const string RU = "RU";
   public const string UA = "UA";
   public const string KZ = "KZ";
}



Но чем преобразования не нравятся? Это позволяет делать многие вещи: локализацию, замену, расширение и т.д.

Лучше всего в этом отношении работает атрибут DisplayAttribute, так как поддерживается на многих уровнях, поддерживает локализацию в ресурсах и т.п.
...
Рейтинг: 0 / 0
01.10.2018, 12:44
    #39710867
NewIvanovec
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
enum
спасибо за помощь!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / enum / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]