C# 对返回类型感到困惑

C# 对返回类型感到困惑,c#,io,C#,Io,您好,我正在尝试在C#中创建一个按钮,如果您按下它。它应该产生一个关于所附txt文件的IP地址的消息框。但我遇到了无法修复的错误。我想我的返回类型搞错了,我一直有问题,这是代码 private String getIPAddress() { String x; using (TextReader configfile = File.OpenText("PC104Configs.txt")) while (configfile.P

您好,我正在尝试在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();
    }

首先,您的“getIPAddress”函数应该返回一个字符串。但是,它返回一个布尔值(false)。我想你真的需要返回“X”。另外,我怀疑您是否真的想从MessageBox.Show(trueIP)返回结果。

您声明
getIPAddress
以返回
字符串,但随后尝试返回
对话框结果
bool


听起来您需要更精确地定义
getIPAddress
应该做什么。函数签名意味着您将返回一个包含一个或多个IP地址的字符串(或一组字符串),但您的代码似乎要做的是弹出一个消息框,其中包含找到的第一个IP地址。

您从一个期望返回字符串的函数返回布尔值。因此,这:

private String
…不允许返回,这是:

return (false);
…或


…false是布尔值,Show()方法返回一个DialogResult,您的函数必须返回一个字符串。

“但是我遇到了无法修复的错误。”您能显示错误消息吗?欢迎使用,我们一直在期待您的到来。为什么需要
configfile.ReadLine()两次,trueIP在哪里声明?
return MessageBox.Show(trueIP);