0

我是 C# 新手,正在研究 C# Head First 书中的一些示例,并尝试以实际的方式应用我所学的知识。我正在尝试使用以下代码读取文本文件:

private StreamReader upload;

private void Form1_Load(object sender, EventArgs e)
{
    if (File.Exists(@"C:\Users\Recon 5\Desktop\ToDo.txt"))
    {
        upload = new StreamReader(@"C:\Users\Recon 5\Desktop\ToDo.txt");
        while (upload.Peek() != null)
        {
            currentTasks.Items.Add(upload.ReadLine());
        }
        upload.Close();
    }
}

上面的代码提供了预期的结果,即将文本文件中的项目添加到列表框中。我不明白的是为什么下面的表达式:

upload.Peek() != null

给我以下编译器警告:

表达式的结果总是true因为 type 的值int永远不等于nulltype int

我尝试在 Windows中查找响应,但了解 API 本身就是一项任务。

我想我正在寻找的是有用的指针来指导我的搜索或资源,以帮助我自己发现答案。我确信可能有更好的方法来编写这个任务,但是鉴于我对语言的理解,我觉得使用和理解我迄今为止所学的工具很重要,在这种情况下是while循环。

4

1 回答 1

6
while (upload.Peek() != null)

...看起来很可疑,因为StreamReader.Peek()无法返回null。我怀疑正确的路线是;

while (upload.Peek() != -1)

返回值
类型:System.Int32
一个整数,表示要读取的下一个字符,如果没有要读取的字符或流不支持查找,则为 -1。

于 2013-08-17T18:14:52.533 回答