向列表中添加项目时出现AccessViolationException
本文关键字:AccessViolationException 项目 列表 添加 | 更新日期: 2023-09-27 18:03:36
我正在VS2010 中开发Windows Phone 8.0应用程序
在某个时刻,我决定制作两个类(玩家、游戏(
Game.cs
public class Game
{
public string Name { get; set; }
public bool[] LevelsUnlocked { get; set; }
public bool firstTimePlaying { get; set; }
public Game(int numOfLevels)
{
this.firstTimePlaying = true;
this.LevelsUnlocked = new bool[numOfLevels];
}
}
Player.cs
public class Player
{
public int ID { get; set; }
public string FirstName{ get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public int Rank { get; set; }
public int Points { get; set; }
public string RankDescreption { get; set; }
public Uri Avatar { get; set; }
public List<Game> Games;
public Player()
{
Game HourGlass = new Game(6);
Game CommonNumbers = new Game(11);
Games.Add(HourGlass);
Games.Add(CommonNumbers);
}
}
当我调试时,应用程序在线路上崩溃:Games.Add(HourGlass);
由于AccessViolationException
,我看不出将项目添加到列表中有什么问题。
那是什么呢?
在使用列表之前,必须对其进行初始化。
此:
public List<Game> Games;
需要这样:
public List<Game> Games = new List<Game>();
我很惊讶你得到了AccessViolationException
。。我本以为会有NullReferenceException
。
您尚未将游戏设置为新列表。
public List<Game> Games = new List<Game>();
public Player()
{
Game HourGlass = new Game(6);
Game CommonNumbers = new Game(11);
Games.Add(HourGlass);
Games.Add(CommonNumbers);
}