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

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

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

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

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

textual
Листинг программы
    public class MyFieldType
    {
        private string valueBackingField;
 
        public string Value { get { return valueBackingField; } }
 
        private static MyFieldType someValueBackingField = new MyFieldType("Some string value, declared somewhere");
 
        public static MyFieldType SomeValue { get { return someValueBackingField; } }
 
        private MyFieldType(string val)
        {
            valueBackingField = val;
        }
 
        public static implicit operator string(MyFieldType obj)
        {
            return obj.valueBackingField;
        }
    }
 
public class MyClass
{
    ...
    public MyFieldType MyField;
    ...
}
 
...
MyClass cls = new MyClass();
cls.MyField=MyFieldType.SomeValue; //почти как enum
...
 
...
string StringValue=cls.MyField; //StringValue="Some string value, declared somewhere"
...

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


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

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

6   голосов , оценка 3.5 из 5
Похожие ответы