powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / возможно ли явное приведение типов для string и экземпляра enum
3 сообщений из 3, страница 1 из 1
возможно ли явное приведение типов для string и экземпляра enum
    #38439995
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ибо так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
  public enum Types
            {   
                [Description("Действие")]
                Action,
                [Description("Отчет")]
                Report,
                [Description("Справочник")]
                Book
            }
        public static explicit operator Types(string s)
        {
            switch (s)
            {
                case "Report":
                    return Types.Report;
                case "Book":
                    return Types.Book;
            }
            return Types.Action;
        }
        public static explicit operator string(Types t)
        {
           switch (t)
            {
                case Types.Report:
                    return "Report";
                case Types.Book:
                      return "Book";
            }
            return "Action";
        }


не взлетает
...
Рейтинг: 0 / 0
возможно ли явное приведение типов для string и экземпляра enum
    #38440075
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
waszkiewicz, явное преобразование между enum и string не получится создать. Чтобы преобразовать enum в string проще вызвать метод ToString(). Для обратного преобразования метод Enum.Parse или Enum.TryParse. Его можно упростить написав extension метод:
http://stackoverflow.com/a/1061270
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public static class StringExtensions {
    public static T ConvertToEnum<T>(this string value)  {
        Contract.Requires(typeof(T).IsEnum);
        Contract.Requires(value != null);
        Contract.Requires(Enum.IsDefined(typeof(T), value));
        return (T)Enum.Parse(typeof(T), value);
    }
}
...
Рейтинг: 0 / 0
возможно ли явное приведение типов для string и экземпляра enum
    #38440485
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
bazileявное преобразование между enum и string не получится создать.

Гм. Недели две назад я боролся с тем, что enum по умолчанию преобразовывался в string по имени члена перечисления.
Если взять заглавный постинг, то Types.Action преобразовывался в строку "Action".

Net 4.0
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / возможно ли явное приведение типов для string и экземпляра enum
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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