【问题标题】:GetObject set to ArrayObject C#GetObject 设置为 ArrayObject C#
【发布时间】:2014-05-01 08:37:10
【问题描述】:

我是 C# 编程的新手。我创建了一个具有 x 和 y 位置的 Cell 类和 Warrior 对象。具有(int 生命值,int 防御点)的战士

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

我正在使用

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

setWarrior到特定单元格

现在,我想getWarrior 我已设置为特定的单元格。

  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);

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

如何找到设置到该单元格的战士对象?

【问题讨论】:

    标签: c# arrays oop multidimensional-array


    【解决方案1】:

    而不是下面的:

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

    应该是:

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

    这是除了

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

    【讨论】:

      【解决方案2】:

      试试这样:

       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);
      

      您没有像初始化 magicWarrior1 对象那样初始化您的 Cell 对象。

      【讨论】:

        猜你喜欢
        • 2016-02-04
        • 2013-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-15
        相关资源
        最近更新 更多