【发布时间】:2012-07-03 13:49:47
【问题描述】:
是否可以将包含 List 的 Class 存储在数组中?
我在这个概念上遇到了一些麻烦。
这是我的代码:
我的班级叫做“arrayItems”:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EngineTest
{
[Serializable] //List olarak save etmemiz için bu gerekli.
public class arrayItems
{
public List<items> items = new List<items>();
}
}
这是我的名为“tileItems”的数组的定义:
public static arrayItems[, ,] tileItems;
这是我创建数组的方法:
Program.tileItems = new arrayItems[Program.newMapWidth, Program.newMapHeight, Program.newMapLayers];
我面临的问题是我的数组的内容为空。 我收到了这个错误:
Object reference not set to an instance of an object.
当我尝试通过 Add() 命令填充数组中的列表时,我得到了同样的错误。
你能指引我正确的方向吗? 提前致谢。
【问题讨论】:
-
您实例化了数组
titleItems,因此arrayItems引用的空间已分配,但您尚未将引用设置为arrayItems类的有效实例。 -
一种快速的解决方法是将
public class arrayItems更改为public struct arrayItems,然后arrayItems将成为值类型,而不是引用类型。但是,这可能会产生其他不良副作用。
标签: c# arrays list object reference