我正在用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。有什么建议吗?