Impossible de convertir implicitement le type 'string' int'
Je reçois le débogage d'erreur "impossible de convertir implicitement le type 'string' int'" en C#.
Voici un extrait de mon code:
private void button2_Click(object sender, EventArgs e) //button to start takedown
{
byte[] packetData = System.Text.ASCIIEncoding.ASCII.GetBytes("<Packet OF Data Here>");
string IP = "127.0.0.1";
int port = "80";
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(IP), port);
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
client.SendTo(packetData, ep);
}
Vous devez vous connecter pour publier un commentaire.
Si possible:
Si vous ne pouvez pas avoir une variable int, vous aurez à analyser:
par exemple
Voici l'erreur:
convertir en
Vous devez les convertir en
string
àint
ici:Juste passer comme int:
Dans votre cas, tout le monde la réponse de ce port doit être de type "int" au lieu de type "string" est correct. Toutefois, si vous avez vraiment eu une chaîne de caractères à partir de la saisie de l'utilisateur, et vous avez besoin de le reconvertir en un int Int32.TryParse ou Int32.Analyser suffira.
est incorrect, car
int
s'attendait à un entier, pas une chaîne de caractères. En utilisant les marques de reconnaissance vocale, vous êtes provding80
comme une chaîne de caractères, et non comme un nombre entier. Retirez simplement le discours des marques de sorte que vous êtes à l'affectation de la variable comme un entier.Vous ne pouvez pas parler de nombre entier dans "" comme vous l'avez fait
int port = "80";
version correcte doit être
int port = 80;
changement
int port = "80";
pour
var port = "80";
Et
L'ipendpoint ep = nouveau l'ipendpoint(IPAddress.Parse(IP, port);
pour
L'ipendpoint ep = nouveau l'ipendpoint(IPAddress.Parse(IP), Convertir.ToInt32(port));