While循环警告始终为true,因为类型为';int';永远不等于';null';类型'
本文关键字:类型 int null 不等于 永远 因为 警告 循环 true While | 更新日期: 2023-09-27 18:27:59
我是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库中查找响应,但理解API本身就是一项任务。
我想我正在寻找的是指导我搜索的有用指针,或者是帮助我自己发现答案的资源。我相信可能有更好的方法来编写这项任务,但鉴于我对语言的理解,我觉得使用和理解迄今为止所学的工具很重要,在这种情况下是while
循环。
while (upload.Peek() != null)
看起来可疑,因为StreamReader.Peek()
无法返回null
。我怀疑正确的路线是;
while (upload.Peek() != -1)
返回值
类型:System.Int32
一个整数,表示要读取的下一个字符,如果没有要读取的字符或流不支持查找,则为-1。