Асинхронное соединение - PullRequest
0 голосов
/ 11 марта 2009

В 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 Ответ

1 голос
/ 11 марта 2009

Полагаю, ваш код выглядит так:

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);

Или просто сделайте это в конструкторе: (как правило, лучше)

public class lanmessenger {
  IPAddress localaddress;
  IPEndPoint ip;

  public lanmessenger(){
    this.localaddress = IPAddress.Parse("127.0.0.1")
    this.ip = new IPEndPoint(localaddress,5555);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...