[.net] Constant (Arrays of?) Structures in C#

This topic is 3472 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Hi there guys, I'm making a game where I have many races, each one having racial maximums for each attribute. It's a MUD and looking at some C sources I found out they just use a constant structure or something. Well, I'm coding in C# and at the moment the closest I got to what I want was to declare a static list/array. The code is like this:
namespace Workshop
{
enum EAttribute : byte { Body, Agility, Reaction, Strength, Charisma, Intuition, Logic, Willpower, Initiative }
struct SAttribute
{
public string Name;
public string Name3;
}

class Sheet
{
// Static Stuff
#region Attribute Data Table
public static SAttribute[] SAttributeTable = new SAttribute[9]
{
new SAttribute { Name = "Body",        Name3 = "BOD" },
new SAttribute { Name = "Agility",     Name3 = "AGI" },
new SAttribute { Name = "Reaction",    Name3 = "REA" },
new SAttribute { Name = "Strength",    Name3 = "STR" },
new SAttribute { Name = "Charisma",    Name3 = "CHA" },
new SAttribute { Name = "Intuition",   Name3 = "INT" },
new SAttribute { Name = "Logic",       Name3 = "LOG" },
new SAttribute { Name = "Willpower",   Name3 = "WIL" },
new SAttribute { Name = "Initiative",  Name3 = "INI" },
};
#endregion

... and so it goes. Is that as far as C# can go for constant stuff? What's the closest I can get to the way Rom (MUD) defines its constants for the races, skills, classes constants, for example? Thanks!

Share on other sites
Would it really be so horrible to load this stuff from data files instead?

Share on other sites
Could be, but wouldn't it be slower that way?

What do you suggest?

After reading them from the files I'll still have to store them somewhere. I thought I would end up in the same situation then...

Or are you suggesting that I read them from the files whenever I need to access them during the game?

I'm really really new to C# so any suggestion will be really appreciated.

Thanks again!

Share on other sites
Did you try using the readonly keyword?

Share on other sites
Yup, readonly would work (I think), but that wouldn't solve my problem. I was reading my post and I think I wasn't very clear.

The problem is that I am creating what in C# is like a pointer, I think. And that obviously can't be constant. It's an array without declared size, which is expandable.

PROBLEM:
How to create a constant list of structures who, by their turn, contain many members, including structures as members, that's fixed in size? (Maybe being able to define their content upon initialization/declaration?)

Share on other sites
Not that I know of. In C#, there's no concept of a statically-sized array like there is in C++.

Share on other sites
Why do you WANT a statically sized array like that, anyway?

Share on other sites
Well I thought it would save up on memory. But I guess I can't, heh. I've searched a lot but no solution. Maybe it's not possible in C#. :P

Share on other sites
Quote:
 Well I thought it would save up on memory.

It won't, so I wouldn't worry about it.

Storing them in files and then loading them at runtime, as previously suggested, is really the ideal approach here.

1. 1
Rutin
29
2. 2
3. 3
4. 4
5. 5

• 13
• 13
• 11
• 10
• 13
• Forum Statistics

• Total Topics
632960
• Total Posts
3009476
• Who's Online (See full list)

There are no registered users currently online

×