C#Singleton实例返回null

时间:2014-02-06 18:38:37

标签: c# oop singleton

我正在用C#开发一个国际象棋应用程序。

我已经将ChessBoard实现为一个包含棋子定义的单例类。我可以从不同的类访问ChessBoard实例。我甚至创建了一个测试类,看看我是否可以访问ChessBoard实例,这个实例证明是成功的。

但是,在我的ROOK类中,当我尝试访问ChessBoard实例时,它返回null。这是ChessBoard类的代码:

public sealed class ChessBoard 
{
   static readonly ChessBoard instance = new ChessBoard();

   static ChessBoard() 
   { }

   ChessBoard() 
   { }

   public static ChessBoard Instance
   {
      get
      {
         return instance;
      }
   }

   /* And some other methods and properties */
}

但是当我从ROOK类调用ChessBoard的实例时,它返回null。这是ROOK课程:

public class ROOK : IPiece
{
   public int posx, posy;
   public int side;
   public List<Position> PossibleMoves = new List<Position>();

   public ROOK(int color, int x, int y)
   {
      posx = x;
      posy = y;
      side = color;
      UpdateMoveList();
   }

   public bool IsInLimits(int x, int y)
   { }

   public void UpdateMoveList()
   {
      ChessBoard boardinstance = ChessBoard.Instance;
      if (boardinstance == null) { MessageBox.Show("NULL"); }
      else
      { }
   }
}    

IPiece接口:

public interface IPiece
{
   IsInLimits(int x, int y);
   void UpdateMoveList();
}

正如我之前所说,只有在ROOK类中,ChessBoard实例才会返回null。在其他类中,它不返回null。有什么建议吗?

0 个答案:

没有答案