2015-10-15 42 views
-1

我正在寻找一种方法来存储具有指定属性的类对象,然后阅读它们。这是我特地与方法:最方便的方式来存储,定义和读取类的对象?

internal class Zones 
{ 
    public Dictionary<string, Zone> zoneData = new Dictionary<string, Zone>() 
    { 
     { "Something", new Zone() } 
    }; 

    public Zone Load(string zoneName) 
    { 
     return zoneData[zoneName]; 
    } 
} 

internal class Zone 
{ 
    public uint id; 
    public string name; 
} 

然后阅读:

Zone z = Zones.Load("Something"); 
// z.id, z.name 

但是有一个问题。我希望能够在具有指定属性的zoneData字典中有多个Zone类。

我想到了几个选项。当主类运行时,定义新的和zoneData.add(new Zone([Properties]))。或者直接按照我在示例中展示的那样,但我必须在外部定义这些内容,然后添加引用。

再次,对于这个想法,最好的方法是什么?谢谢!

+2

目前尚不清楚你想要做什么的区域类的构造函数,但它听起来像是你试图重塑轮子在这里。你是否希望在运行时动态加载类?如果是这样,看看反思。你是否试图坚持课程的数据和结构?如果是这样,请考虑序列化。 – Tim

+0

好吧,也许我还不够清楚,但基本上什么是直接在字典里面存储Zone类的最佳方式。无需在运行时开始添加()那些? – user2818626

+0

你可以坚持使用序列化,然后在启动时读取它们 –

回答

1

你需要创建的类,并把他们的字典

Dictionary<string, Zone> m_dict = new ....; 
public Zones() 
{ 
    m_dict.Add("zone1", new Zone{id = 42, name = "foo"}); 
    m_dict.Add("zone2", new Zone{id = 43, name = "bar"}); 
.... 
} 
相关问题