GetObject设置为ArrayObject C#

时间:2014-03-24 05:33:02

标签: c# arrays oop multidimensional-array

我是C#编程的新手。我创建了一个x和y位置的Cell Class和Warrior Object。战士用(int hitpoints,int defensePoint)

 public class Cell
     {
         public int _x;
         public int _y;
         public Warrior _warrior;
     }

我正在使用

   public void setWarrior(Warrior warrior) {
        this.warrior = _warrior;
   }

setWarrior到特定单元格

现在,我希望getWarrior我已经设置了特定的Cell。

  public Warrior getWarrior(int X, int Y)
     {
         return _warrior;
     }

 Cell[,] cells = new Cell[6, 6];  
 Warrior magicWarrior1 = new Warrior();
 cells[2,3].setWarrior(magicWarrior1); 
 Console.WriteLine("\t{0}", cells[2,3].warrior);
 cells[2,3].getWarrior(2,3);
 Console.WriteLine("\t{0}", cells[2,3].warrrior);

但这不起作用 问题:对象引用未设置为对象的实例

如何找到设置为该单元格的warrior对象?

2 个答案:

答案 0 :(得分:0)

试试这样:

 Cell[,] cells = new Cell[6, 6];  
 Warrior magicWarrior1 = new Warrior();
 cells[2,3] = new Cell();   //<-------------
 cells[2,3].setWarrior(magicWarrior1); 
 Console.WriteLine("\t{0}", cells[2,3].warrior);

您尚未以与Cell对象相同的方式初始化magicWarrior1对象。

答案 1 :(得分:0)

而不是下面的内容:

 public void setWarrior(Warrior warrior) {
        this.warrior = _warrior;
   }
应该是:

 public void setWarrior(Warrior warrior) {
        this._warrior = warrior;
   }

这是

的补充
 cells[2,3] = new Cell();   //<-------------