【发布时间】:2013-08-19 22:57:52
【问题描述】:
我是 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,因为int类型的值永远不会等于int类型的null。
我已尝试在 Windows library 中查找响应,但了解 API 本身就是一项任务。
我想我正在寻找有用的指针来指导我的搜索或资源以帮助我自己发现答案。我确信可能有更好的方法来编写这个任务,但考虑到我对语言的理解,我觉得使用和理解我迄今为止所学的工具很重要,在这种情况下是while循环。
【问题讨论】:
-
我认为你应该首先了解值类型和引用类型之间的区别。另外 - IntelliSense
Peek()文档应该准确地告诉你它可以返回什么值,这样你就可以知道会发生什么。 -
@Tarec,我很欣赏这个方向。还可以更多地使用 IntelliSense,它确实表明返回类型为 int,再次感谢。
标签: c# .net while-loop streamreader