在读别人一个五子棋程序时,遇到个小小问题,如下:请问定义这样一个类: public class StackElement//回溯栈元素
{
public int gobangColor;
public Point[] bestFivePoints = new Point[5];
public int pointsCount;
public int pointNumber;
public Conclution[] theConclution = new Conclution[5];
public int[] stepNumber = new int[5];
}并声明一个对象: StackElement tempStackElement= new StackElement();之后是不是可以直接使用 backTrackStack.Push(tempStackElement);
tempStackElement = (StackElement)backTrackStack.Pop();
这样的操作,为什么当我的代码运行到这些语句后,总没能正常地实现如代码中所表示的出栈Push跟入栈Pop?具体点说,当栈中有元素时,push一个新元素进去后,backTrackStack.Count很正常地自动加1,到这一步还是很正常的;不过,当一个个pop出栈顶的元素时,发现里边所有的元素都跟最后一个Push的元素一样,有点像被同化了一样,不过backTrackStack.Count又能很正常地显示栈中还有几个元素。实在让人百思不得其解。还望高手帮忙解答一下,怎么才能解决这个问题??本人由于对于C#刚入门,所以不太清楚为什么一个类定义中没有定义的方法(如Pop()和Push()这些)就可直接使用,是不是因为这些使用什么新技术啊?
{
public int gobangColor;
public Point[] bestFivePoints = new Point[5];
public int pointsCount;
public int pointNumber;
public Conclution[] theConclution = new Conclution[5];
public int[] stepNumber = new int[5];
}并声明一个对象: StackElement tempStackElement= new StackElement();之后是不是可以直接使用 backTrackStack.Push(tempStackElement);
tempStackElement = (StackElement)backTrackStack.Pop();
这样的操作,为什么当我的代码运行到这些语句后,总没能正常地实现如代码中所表示的出栈Push跟入栈Pop?具体点说,当栈中有元素时,push一个新元素进去后,backTrackStack.Count很正常地自动加1,到这一步还是很正常的;不过,当一个个pop出栈顶的元素时,发现里边所有的元素都跟最后一个Push的元素一样,有点像被同化了一样,不过backTrackStack.Count又能很正常地显示栈中还有几个元素。实在让人百思不得其解。还望高手帮忙解答一下,怎么才能解决这个问题??本人由于对于C#刚入门,所以不太清楚为什么一个类定义中没有定义的方法(如Pop()和Push()这些)就可直接使用,是不是因为这些使用什么新技术啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货