Let's say I'm writing a space game (just as an example, I'm not).
Let's say that in this game I want to have the ability to create 300 different kinds of ships, 500 different crew members and a 100 different planets.
When I start out, there's 0 of any of these ... I haven't built the ships, I haven't hired the crew, and I haven't discovered any planets.
Now ... just about every single aspect of my program (including just about every form) is going to operate on these ships, crewmen, and planets to one degree or another, or at minimum display data for them.
And every single one of them is built through inheritance.
How does any of that work in a static class? From what I'm reading it really doesn't.
So with a static class not available (doesn't deal with inheritance) and no real option for global scope ... how am I going to make this these objects available throughout my application?
I don't want to be writing this stuff out to a file (or DB) and pulling them back in, in every method I need to access them (which might be every one). That would be silly and slow.
I can't believe this isn't possible in C# ... but everything you read on the web is either extremely convoluted, or people just cop a defensive attitude and start putting down the people asking the question (not me, this is the first time I've asked anywhere).
I don't need specific code, this is a discussion. Please give me some thoughts and point me in the direction of what I need to be learning about.