无法将类型'string'隐式转换为'int'

时间:2012-06-30 13:48:19

标签: c# asp.net .net visual-studio-2010 sockets

我不断收到调试错误“无法在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);
        }

7 个答案:

答案 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)

您必须在此转换stringint

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

只需将其传递为int:

int port = 80;

答案 3 :(得分:2)

在你的情况下,其他人的答案是端口需要是“int”类型而不是类型“string”是正确的。但是,如果您确实有一个来自用户输入的字符串,并且需要将其转换回int Int32.TryParseInt32.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));