向列表中添加项目时出现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,我看不出将项目添加到列表中有什么问题。

那是什么呢?

向列表中添加项目时出现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);
        }