在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' .
请帮忙。
答案 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);
}
}