class xxx
{
   public myclass  q1;
   public myclass  q2;
   public myclass  q3;  public void something_clicked()
  {
    q1 = new myclass();
    q2 = new myclass();
    q3 = new myclass();    linklabel1.Text = q1.ToString();
    linklabel2.Text = q1.ToString();
    linklabel3.Text = q1.ToString();
  }
}在调试的时候q1,q2,q3的ToString不一样
但是已运行程序q1,q2,q3就总是一模一样
请问这是怎么回事,如何解决?
谢谢

解决方案 »

  1.   

    myclass重写了ToString()方法没有?
    调试的时候是什么信息?
    已运行(什么意思)是什么信息?
      

  2.   

    linklabel1.Text = q1.ToString();
        linklabel2.Text = q1.ToString();
        linklabel3.Text = q1.ToString();
    .......
    表说是这个原因。
      

  3.   

    已运行->一运行(打错了)
    public class MyClass
    {
    public int faciend=0;
    public int multiplier=0;
    public int answer=0;
    public static int max=400; public MyClass(int level)
    {
    max=80*level;
    next(); } override public string ToString()
    {
    return Convert.ToString(answer)+ " ÷ "  + Convert.ToString(faciend)
    + " = ?";
    } public bool Equals(IntQuestionGen question)
    {
    return question.answer==answer&&question.faciend==faciend;
    } public void assign(IntQuestionGen q)
    {
    faciend = q.faciend;
    multiplier = q.multiplier;
    answer = q.answer;
    } public void next()
    {
    Random rnd = new Random();
    int range = Convert.ToInt32(System.Math.Sqrt(max));
    RECALC:
    faciend = rnd.Next(1,range);
    multiplier = rnd.Next(1,range);
    if(faciend*multiplier>max)goto RECALC;
    answer = faciend*multiplier;
    }

    }调试的时候3个LinkLabel的Text是不同的
    但是在运行的时候(非调试)3个LinkLabel的Text都一样
      

  4.   

    是(又打错了)
        linklabel1.Text = q1.ToString();
        linklabel2.Text = q2.ToString();
        linklabel3.Text = q3.ToString();
      

  5.   

    ToString()的是可以重载的,看它具体输出的是什么了,如果是和运行时有关的信息,肯定不一样了!
      

  6.   

    YUN ,肯定是别的地方的影响光看这几行,没有你说的情况
      

  7.   

    这个MyClass目的是什么?里面即用到了static变量,又用到了随机数,
    Random的结果跟时间和Seed有关,所用的三个新的Random在实际运行的时候几乎是在同一时间生成的,所以就产生了相同的结果。
    所以建议你把Random rnd也定义成private static,然后需要的时候用rnd.Next来获得随机数,同一个对象多次Next所得的结果就不一样了,因为Next会改变rnd所用的seed
      

  8.   

    这个应该和JAVA一样的。只要类一样那么产生的类型也该一样,在同一个地址上的引用。
      

  9.   

    楼主仔细看看fancy的回答:这个MyClass目的是什么?里面即用到了static变量,又用到了随机数,
    Random的结果跟时间和Seed有关,所用的三个新的Random在实际运行的时候几乎是在同一时间生成的,所以就产生了相同的结果。
    所以建议你把Random rnd也定义成private static,然后需要的时候用rnd.Next来获得随机数,同一个对象多次Next所得的结果就不一样了,因为Next会改变rnd所用的seed