2012-07-26 160 views
-1

你好我正在嘗試在C#中創建一個按鈕,如果你按下它。它應該從附加的txt文件的IP地址產生一個消息框。但是我收到了我無法解決的錯誤。我想我有我的返回類型混合起來,我一直有麻煩,這是代碼。對返回類型感到困惑

private String getIPAddress() 
    { 

     String x; 

     using (TextReader configfile = File.OpenText("PC104Configs.txt")) 
      while (configfile.Peek() > -1) // If therre are no more characters in this line 
      { 
       x = configfile.ReadLine(); 

       if (x.Length == 0) 
       { 
        // This is a blank line 
        continue; 
       } 

       if (x.Substring(0, 1) == ";") 
       { 
        // This is a comment line 
        continue; 
       } 

       if (x == trueIP) 
       { 
        // This is the real deal 
        testPort = configfile.ReadLine(); 
        testIP = trueIP; 
        return MessageBox.Show(trueIP); 
       } 
      } // End of 'while' there are more characters loop 

     UnitToTest.Text = ""; 

     MessageBox.Show("Specified Configuration Not Found!"); 

     return (false); 
    } 


    private void btnSendConfig_Click(object sender, EventArgs e) 
    { 
     getIPAddress(); 
    } 
+4

」但是我收到了我無法解決的錯誤。「你能顯示錯誤信息嗎? – 2012-07-26 01:16:10

+0

歡迎來到[so],我們一直期待着你。你爲什麼需要'configfile.ReadLine();'兩次,trueIP聲明在哪裏? – 2012-07-26 01:19:17

回答

2

首先,你的「getIPAddress」函數應該返回一個字符串。然而,你有它返回一個布爾值(假)。我想你真的需要返回'X'。另外,我懷疑你真的想從MessageBox.Show(trueIP)返回結果。

0

您聲明getIPAddress返回String,但隨後您嘗試返回DialogResultbool

這聽起來像你需要更精確地定義什麼getIPAddress應該做的。函數簽名意味着您將返回一個包含一個或多個IP地址的字符串(或一組字符串),但您的代碼似乎想要做的是彈出消息框,其中找到第一個IP地址。

2

你從函數返回一個布爾值,期望返回一個字符串。因此,這樣的:

private String 

..是不允許返回,這樣的:

return (false); 

..或

return MessageBox.Show(trueIP); 

..false是布爾和Show()方法返回一個DialogResult,你的函數必須返回一個字符串。 「