1

我的 .NET Windows 应用程序有多个能够打开和查看文本文件的实例。当我通过我的代码创建单独的 openFileDialogs 时,我没有问题让它工作。在尝试清理我的代码时,我创建了一个方法,但我还很新,并且得到了一个红色的波浪线。有人可以看看这个并告诉我我做错了什么吗?谢谢。

我正在尝试调用如下所示的方法:

textBox_ViewFile.Text = LoadFromFile();

那么我的方法如下:

static string[] LoadFromFile()
    {
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        openFileDialog1.InitialDirectory = "c:\\";
        openFileDialog1.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
        openFileDialog1.RestoreDirectory = false;
        openFileDialog1.ShowHelp = true;

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            try
            {
                if (openFileDialog1.OpenFile() != null)
                {
                    return (File.ReadAllLines(openFileDialog1.FileName));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            }
        }
    }

在这种情况下,我在 VS2010 中的“LoadFromFile()”下遇到语法错误

static string[] LoadFromFile()"
4

2 回答 2

2

return如果您的任何一个陈述是,您就错过了一个if陈述false

    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        try
        {
            if (openFileDialog1.OpenFile() != null)
            {
                return (File.ReadAllLines(openFileDialog1.FileName));
            }
            // missing
            return null;
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            // missing
            return null;
        }
    }
    // missing
    return null;

于 2013-01-22T02:18:17.300 回答
1

textBox_ViewFile.Text是一个string。您的函数返回一个数组 ( string[])。您需要使函数返回单个string.

return string.Join('\n', File.ReadAllLines(openFileDialog1.FileName));

或者:

return File.ReadAllText(openFileDialog1.FileName);
于 2013-01-22T02:16:21.543 回答