2012-06-30 187 views
-2

我一直在C#中收到調試錯誤「不能隱式地將類型'字符串'轉換爲'int'」。無法將類型'字符串'隱式轉換爲'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

以下是錯誤:

int port = "80"; 

其轉換成

int port=80; 
3

你必須string轉換爲int這裏:

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

只是把它作爲INT:

int port = 80; 
0
int port = "80"; 

不正確,因爲int預期的整數,而不是字符串。通過使用語音標記,您可以將80作爲字符串提供,而不是整數。只需刪除語音標記,以便將變量分配爲整數。

int port = 80; 
2

在你的情況,每個人的答案是端口必須是類型是「int」,而不是類型「string」是正確的。但是,如果您確實有來自用戶輸入的字符串,並且您需要將其轉換回int Int32.TryParseInt32.Parse就足夠了。

7

如果可能的話:

int port = 80; 

如果你不能有一個int變量,你將不得不對其進行解析:

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

例如

string a = "80"; 
int port = Int32.Parse(a); 
+1

我認爲這應該是他的預期。 –

0

你無法提及整數「」你幹得int port = "80";

正確的版本應該是int port = 80;

0

所有答案都是正確的,但對於更好地瞭解你應該閱讀this

0

change
int port =「80」;

var port =「80」;

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

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

相關問題