Enum со сложными типами в качестве значений - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую! Вопрос мой прост и глуп, но мне в голову никак не приходит на него ответ. Допустим, есть у меня поле в классе
Листинг программы
  1. public class MyClass
  2. {
  3. ...
  4. public MyFieldType MyField;
  5. ...
  6. }
Хотелось бы иметь возможность написать нечто вроде следующего:
Листинг программы
  1. ...
  2. MyClass cls = new MyClass();
  3. cls.MyField=MyFieldType.SomeValue; //почти как enum
  4. ...
И после этого:
Листинг программы
  1. ...
  2. string StringValue=cls.MyField; //StringValue="Some string value, declared somewhere"
  3. ...
Я полагаю, вопрос понятен? Мне кажется, что ответ лежит на поверхности, но я его не вижу. И не могу нормально сформулировать поисковый запрос. Как должен быть объявлен MyFieldType? Или есть другие способы получить подобный результат?

Решение задачи: «Enum со сложными типами в качестве значений»

textual
Листинг программы
  1.     public class MyFieldType
  2.     {
  3.         private string valueBackingField;
  4.  
  5.         public string Value { get { return valueBackingField; } }
  6.  
  7.         private static MyFieldType someValueBackingField = new MyFieldType("Some string value, declared somewhere");
  8.  
  9.         public static MyFieldType SomeValue { get { return someValueBackingField; } }
  10.  
  11.         private MyFieldType(string val)
  12.         {
  13.             valueBackingField = val;
  14.         }
  15.  
  16.         public static implicit operator string(MyFieldType obj)
  17.         {
  18.             return obj.valueBackingField;
  19.         }
  20.     }
  21.  
  22. public class MyClass
  23. {
  24.     ...
  25.     public MyFieldType MyField;
  26.     ...
  27. }
  28.  
  29. ...
  30. MyClass cls = new MyClass();
  31. cls.MyField=MyFieldType.SomeValue; //почти как enum
  32. ...
  33.  
  34. ...
  35. string StringValue=cls.MyField; //StringValue="Some string value, declared somewhere"
  36. ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы