简单的赋值为什么不能进行(菜鸟级别)
简单的说一下,一个class含两个enum,然后新建一个2维class数组,给数组付值时nullReferenceException错误。找到错误原因了。
错误原因:
C#中,如果数组中的元素是引用类型,则需要为每个元素分配内存空间。也就是说,new一次数组之外,还需要new每个元素。
public enum Show
{
Bomb = -3,
Blank = -2,
FLAG = -1,
Zero = 0,
One = 1,
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
}
public enum IsMine
{
Mine,
NotMine
}
public class gridstatus
{
public Show show{get;set;}
public IsMine ismine{get;set;}
}
public gridstatus[,] grid = new gridstatus[9, 9];
public void newGame()
{
//grid[0, 0].show = Show.Blank;
foreach (var a in grid)
{
a.show = Show.Blank;//这里出现nullReferenceException错误
//a.show = (Show)1;
///TODO
Random ra = new Random();
int t = ra.Next(10);
if (t < 2)
{
a.ismine = IsMine.Mine;
}
else
{
a.ismine = IsMine.NotMine;
}
}
[ 本帖最后由 adbest 于 2013-8-2 15:14 编辑 ]