Enum со сложными типами в качестве значений - C#
Формулировка задачи:
Приветствую!
Вопрос мой прост и глуп, но мне в голову никак не приходит на него ответ.
Допустим, есть у меня поле в классе
Хотелось бы иметь возможность написать нечто вроде следующего:
И после этого:
Я полагаю, вопрос понятен? Мне кажется, что ответ лежит на поверхности, но я его не вижу. И не могу нормально сформулировать поисковый запрос.
Как должен быть объявлен MyFieldType? Или есть другие способы получить подобный результат?
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" ...
Решение задачи: «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"
...