Как исправить ссылку на объект, не установленную на экземпляр объекта?
Im пытается прочитать данные из xml-файла в таком формате:
<npc_templates> <npc_template npc_id="280001"> <equipment> <item>100000005 <item>100000006
Что я уже пробовал:
И я пытаюсь с помощью этого кода читать элементы оборудования/предметов:
public class NpcTemplate { [XmlAttribute("npc_id")] public int npc_id; [XmlElement("equipment")] public NpcEquippedGear equipment; }
и класс NpcEquippedGear:
public class NpcEquippedGear : IEnumerable<KeyValuePair<EquipmentSlot, ItemTemplate>> { [XmlElement("item")] public ItemTemplate[] items2; public Dictionary<EquipmentSlot, ItemTemplate> items; public int mask; public NpcEquippedGear() { } public void Add(object o) { } public int getItemsMask() { if (items == null) init(); return mask; } public void init() { lock(this) { if (items == null) { items = new Dictionary<EquipmentSlot, ItemTemplate>(); foreach (ItemTemplate item in items2)// Error Object reference not set to an instance of an object. { if (items[item.EquipmentSlot] == null) { items.Add(item.EquipmentSlot, item); mask |= (int)item.EquipmentSlot; } } } } } public ItemTemplate GetItem(EquipmentSlot slot) { return items != null ? items[slot] : null; } public IEnumerator GetEnumerator() { return GetEnumerator(); } IEnumerator<KeyValuePair<EquipmentSlot, ItemTemplate>> IEnumerable<KeyValuePair<EquipmentSlot, ItemTemplate>>.GetEnumerator() { return items.GetEnumerator(); } }
Это все, что я пытаюсь, но во время запуска программы его сказать mw ошибка
Object reference not set to an instance of an object.
в NpcEquippedGear цикл по каждому элементу класса
Richard MacCutchan
Потому что вы никогда не инициализировались items2
ссылаться на что угодно.