I have a list of 50 attributes that an object can have. This object can have different categories of properties - category 1, category 2 and category 3. Category 1 is subset of category 2, category 2 is subset of category 3, and category 3 is the full list. I've initially used struct but I'm now wondering if I should use class, or if I'm going about it the wrong way in the first place. For the sake of let's trim it down to 5 attributes and just 2 categories.
C1: A1, A2, A3
C2: A1, A2, A3, A4, A5
The main thing I want to do is to save the struct or class on my main class without differentiating between the two. If I'm using a class, I could create a base class that the 2 category class can be derived from and save it as base class:
Category category;
...
category = new Category1();
category = new Category2();
Since I'm dealing with 10, 25, 50 attribute per category, the class definition is just a large list of properties which looks like struct would be a better fit. But if I use struct, it looks like I have to save it on as Object type? That seems kludgy.
What would be the right way to go about this?
Let me sneak in a second question here. :) So, since I have a large list of properties per class(or struct), would it be better to use object initializer instead of having a constructor with 10, 25, 50 parameters?