假设有一个类:
class test
{
  public IPEndPoint ip;
  public Thread thread;
  public void udp()
  {
     UdpClient rece=new UdpClient(ref ip)  //假想一直没收到包
  }
}
我现在在另一个类中这样引用上面的类:
class aa
{
   test bb=new test();
   Thread thread = new Thread(new ThreadStart(bb.udp));
   thread.Start();
   Thread.Sleep(10000);
   bb.ip=OtherIp;   //OtherIp与bb.ip的地址不同,都是IPEndPoint类型
}
请问当我调用了这句“ bb.ip=OtherIp ”后 “UdpClient rece=new UdpClient(ref ip)
”中的ip是否会跟着改变?
也就是说接收的源对象改变?

解决方案 »

  1.   

    class aa
    {
       test bb=new test();
       bb.thread = new Thread(new ThreadStart(bb.udp));
       bb.thread.Start();
       Thread.Sleep(10000);
       bb.ip=OtherIp;   //OtherIp与bb.ip的地址不同,都是IPEndPoint类型
    }
    是这样的,原先的写错了,Sorry!
      

  2.   

    来这里看看,肯定对你有帮助!
    http://blog.csdn.net/iheshi/archive/2005/03/06/312897.aspx
      

  3.   

    应该会改变吧?但是,没有写ref呢。
      

  4.   

    UdpClient.Receive(ref ip)这里头必须写ref吧
      

  5.   

    我知道使用ref在方法里面改变量会影响到外面。
    那在方法外面改变量,会影响到方法里面吗?
      

  6.   

    我知道使用ref在方法里面改变量会影响到外面。
    那在方法外面改变量,会影响到方法里面吗?你的意思是——正常操作了?!
    在方法外面改变变量?这个不就是很正常的操作么?如果你通过正常的途径改变了变量的值,当然会影响到方法里面啦。