异步连接

时间:2009-03-11 05:00:24

标签: c# asynchronous

在c#中,我使用以下代码:

IPAddress localaddress=IPAddress.Parse("127.0.0.1");

获取正在使用的System.Net.IPAddress实例:

IPEndPoint ip= new IPEndPoint(localaddress,5555);

但是我收到错误说:

A field initializer cannot reference the nonstatic field, method, or property 'WindowsApplication1.lanmessenger.localaddress'   .

请帮忙。

1 个答案:

答案 0 :(得分:1)

我猜你的代码看起来像这样:

public class lanmessenger {
  IPAddress localaddress=IPAddress.Parse("127.0.0.1");
  IPEndPoint ip= new IPEndPoint(localaddress,5555);

  public lanmessenger(){
  ...
  }
}

这里的问题是编译器不希望您按原样使用初始化字段。您正在使用localaddress来初始化ip,这在编译器的预期中是有问题的。解决这个问题的两种方法:

内联它:

 IPEndPoint ip= new IPEndPoint(IPAddress.Parse("127.0.0.1");,5555);

或者只是在构造函数中执行:(通常更好)<​​/ p>

public class lanmessenger {
  IPAddress localaddress;
  IPEndPoint ip;

  public lanmessenger(){
    this.localaddress = IPAddress.Parse("127.0.0.1")
    this.ip = new IPEndPoint(localaddress,5555);
  }
}