2009-03-11 4 views
0

En C#, je suis en utilisant le code suivant:connexion asynchrone

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

pour obtenir une instance System.Net.IPAddress qui je utilise dans:

IPEndPoint ip= new IPEndPoint(localaddress,5555); 

Je suis cependant reçois une erreur disant :

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

Aidez-nous s'il vous plaît.

Répondre

1

Je devine que votre code ressemble à ceci:

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

    public lanmessenger(){ 
    ... 
    } 
} 

Le problème ici est que le compilateur ne veut pas que vous l'aide de champs initialisés la façon dont vous êtes. Vous utilisez localaddress pour initialiser ip, ce qui est problématique de la prospective du compilateur. Deux façons de contourner cela:

Inline il:

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

Ou tout simplement le faire dans le constructeur: (généralement mieux)

public class lanmessenger { 
    IPAddress localaddress; 
    IPEndPoint ip; 

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

ouais j'inférée that..Used la première alternative et ça marche. Merci beaucoup. – Avik

+0

Pas de problème, mec. :) – Patrick