Class A {}
A a = new A();a.execute() 会产生一消息,
如果
A b; 
b = a; 
b.execute() 效果一样吗? 
没收到消息,该如何解释?

解决方案 »

  1.   

    execute()是哪里来的?
    效果是一样的
      

  2.   

    execute() 是类class A{}的方法吧
      

  3.   

    就是,我随便写的
    我测试了一下就是不一样,不知道是不是这个原因?
    用a.exe()就可以收到消息,
    用b.exe()就没有,好奇怪?
      

  4.   

    class都是按地址引用的,是引用类型,b=a后,b.execute()和a.execute()是一样.
      

  5.   

    不明白你说的收到消息是什么,
    Class A {
    public void execute()
    {
    MessageBox.Show("a");
    }
    }
    A a = new A();
    a.execute(); //messageBox a
    A b;
    b = a;
    b.execute() //messageBox a
      

  6.   

    详细点的代码...
    Class A {}
    ArrayList list;
    A a;
    list.add(a);
    ((A)(list[0]0)).exe(); 就会收到一个消息,测试通过如果
    A b;
    b = (A)(list[0]);
    b.exe(); 就收不到,觉得很郁闷,如何解释啊?
      

  7.   

    //状态检测线程执行体,入口
            private void Execute()
            {
                int dvrCount = 0;
                DVR dvr;           
                dvrCount = DVR.DVRlist.Count;            while (!Terminated)
                {
                    //((DVR)(DVR.DVRlist[1])).Login();
                    //手动添加上面代码就会收到DVR.DVRlist[1]注册返回的消息
                    for (int i = 0; i < dvrCount; i++)
                    {
                        dvr = (DVR)(DVR.DVRlist[i]);
                        if (!dvr.Active && !Terminated)
                        {
                            dvr.Login();
                            //上面这样则接受不到
                        }                    if (dvrCount != DVR.DVRlist.Count)
                        {
                            dvrCount = DVR.DVRlist.Count;
                            break;
                        }                }              
                    Thread.Sleep(1000);
                }
            }
            protected override void DefWndProc(ref Message m)
            {
                switch (m.Msg)
                {
                    case WM_RECE_MSG:
                        //处理部分
                        break;
                    default:
                        base.DefWndProc(ref m);///调用基类函数处理非自定义消息。
                        break;
                }
            }
      

  8.   

    肯定是你这个
    判断if(!dvr.Active && !Terminated)
    出问题