0

我在 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);
        }
4

7 回答 7

12

如果可能的话:

int port = 80;

如果你不能有一个 int 变量,你将不得不解析它:

int port = Int32.Parse("80");

例如

string a = "80";
int port = Int32.Parse(a);
于 2012-07-02T10:04:05.427 回答
7

这是错误:

int port = "80";

将其转换为

int port=80;
于 2012-06-30T13:49:20.760 回答
3

您必须在此处转换stringint

int port = "80"; // can't assign string to int

只需将其作为 int 传递:

int port = 80;
于 2012-06-30T13:49:22.357 回答
2

在您的情况下,其他所有人的答案是端口需要是“int”类型而不是“string”类型是正确的。但是,如果您确实有来自用户输入的字符串,并且需要将其转换回 int Int32.TryParseInt32.Parse就足够了。

于 2012-06-30T18:02:25.377 回答
0
int port = "80";

不正确,因为int需要一个整数,而不是字符串。通过使用语音标记,您提供80的是字符串,而不是整数。只需删除语音标记,以便将变量分配为整数。

int port = 80;
于 2012-06-30T13:51:05.773 回答
0

你不能像你所做的那样在 "" 中提到整数int port = "80";

正确的版本应该是 int port = 80;

于 2012-07-02T10:55:50.110 回答
0

更改
int端口=“80”;

var端口 = "80";

并且
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(IP), port);

IPEndPoint ep = new IPEndPoint(IPAddress.Parse(IP), Convert.ToInt32(port) );

于 2017-05-10T16:37:57.637 回答