我不断收到调试错误“无法在C#中隐式地将类型'string'转换为'int'”。
以下是我的代码片段:
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);
}
答案 0 :(得分:8)
如果可能的话:
int port = 80;
如果你不能有一个int变量,你将不得不解析它:
int port = Int32.Parse("80");
e.g。
string a = "80";
int port = Int32.Parse(a);
答案 1 :(得分:7)
这是错误:
int port = "80";
将其转换为
int port=80;
答案 2 :(得分:3)
您必须在此转换string
至int
:
int port = "80"; // can't assign string to int
只需将其传递为int:
int port = 80;
答案 3 :(得分:2)
在你的情况下,其他人的答案是端口需要是“int”类型而不是类型“string”是正确的。但是,如果您确实有一个来自用户输入的字符串,并且需要将其转换回int Int32.TryParse或Int32.Parse就足够了。
答案 4 :(得分:0)
int port = "80";
不正确,因为int
期望一个整数,而不是一个字符串。通过使用语音标记,您将80
作为字符串提供,而不是整数。只需删除语音标记,以便将变量指定为整数。
int port = 80;
答案 5 :(得分:0)
你不能像“int port = "80";
正确的版本应为int port = 80;
答案 6 :(得分:0)
变化
int port =“80”;
到
var port =“80”;
和
IPEndPoint ep =新IPEndPoint(IPAddress.Parse(IP),端口);
到
IPEndPoint ep =新IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(port));