У меня есть список из 50 атрибутов, которые может иметь объект. Этот объект может иметь разные категории свойств - категории 1, категории 2 и категории 3. Категория 1 является подмножеством категории 2, категория 2 является подмножеством категории 3, а категория 3 является полным списком. Я изначально использовал структуру, но теперь мне интересно, следует ли мне использовать класс, или если я ошибаюсь в первую очередь. Ради давайте обрезаем его до 5 атрибутов и всего 2 категории.Моделирование большого списка свойств в C#
C1: A1, A2, A3
C2: A1, A2, A3, A4, A5
Главное, что я хочу сделать, это сохранить структуры или класса на моем главном классе без различия между ними. Если я использую класс, я мог бы создать базовый класс, класс 2 категории может быть получен из и сохранить его в качестве базового класса:
Category category;
...
category = new Category1();
category = new Category2();
Так как я имею дело с 10, 25, 50 атрибутов в категория, определение класса - это просто большой список свойств, который выглядит как структура, лучше подходит. Но если я использую struct, похоже, мне нужно сохранить его как тип объекта? Это похоже на клочья.
Что было бы правильным путем?
Позвольте мне пробраться по второму вопросу здесь. :) Итак, поскольку у меня есть большой список свойств для класса (или структуры), было бы лучше использовать инициализатор объекта вместо конструктора с параметрами 10, 25, 50?
Как правило, не используйте структуру, если у вас нет веской причины. По умолчанию классы. Структуры представляют собой типы значений, которые могут вызывать неожиданное поведение, особенно если вы сделаете их изменчивыми. Кроме того, поскольку они являются типами значений, они должны быть небольшими; 50 членов слишком много для структуры. – Blorgbeard
@Blorgbear - Спасибо. Вот почему я хотел получить обратную связь. Эти поля будут неизменными в готовом продукте, но структуры являются типами значений ... но 50 полей слишком много. и т.д. и т.п. Ха-ха. Похоже, я буду придерживаться классов. – blissfool