У меня есть объект данных, у которого есть базовый класс с тремя производными классами,
public enum ModelType
{
A,
B,
C
}
public abstract class Parent
{
protected ModelType type;
}
public class ChildA: Parent
{
private new ModelType type = ModelType.A;
}
public class ChildB: Parent
public class ChildC: Parent
Такое же поле type
находится в двух других дочерних элементах с соответствующими ModelType
s.
У меня есть другой слой между формами, который имеет некоторую дополнительную информацию об объекте данных более высокого уровня и экземпляр Parent()
.Я пытаюсь значительно упростить проблему, поэтому я прошу прощения, если я не ясен и не дал достаточно информации.
public enum UIModelType
{
A,
B,
C,
None
}
public class DataObject
{
private Parent someData;
private UIModelType type;
}
Поля имеют свойства getter и setter.
Пользовательский интерфейстолько связывается с классом DataObject
и не может видеть объект someData
нижнего уровня.
Теперь в какой-то момент во время пользовательского интерфейса (который является мастером для заполнения информации в объектах данных) пользовательМожно выбрать A
, B
или C
.Моя проблема в том, как передать эту информацию без слишком большого количества повторений кода.Прямо сейчас у меня есть перечисление между UI и DataObject
классом.Поэтому, если пользователь выбирает A
, он назначает тип данных как A
, используя перечисление.Класс DataObject
теперь создает экземпляр объекта someData
с ChildA()
.Проблема состоит в том, чтобы связываться между объектом DataObject
и someData
. У меня есть другое перечисление с A, B и C. Для связи с типом.
Было бы лучше использовать typeof вместо этого, хотя я читал, чтоэто не лучший путь.
Мне нужно сделать много проверок на равенство с типом данных (ABC) из пользовательского интерфейса вплоть до объекта данных более низкого уровня, и, следовательно, я думал, что enums - самый быстрыйКстати, неправильно иметь такое количество перечислений одного типа в разных классах.Я что-то упускаю здесь очень очевидное?