【发布时间】:2013-10-26 18:46:03
【问题描述】:
我正在制作一个简单的程序,它在一组文件中搜索特定名称。我有大约 23 个文件要处理。为了实现这一点,我使用StreamReader 类,因此,为了减少代码编写,我做了一个
List<StreamReader> FileList = new List<StreamReader>();
包含 StreamReader 类型元素的列表,我的计划是遍历列表并打开每个文件:
foreach(StreamReader Element in FileList)
{
while (!Element.EndOfStream)
{
// Code to process the file here.
}
}
我已经打开了 FileList 中的所有流。问题是我得到了一个
空引用异常
while 循环中的条件。
谁能告诉我我在这里犯了什么错误,为什么会出现这个异常以及我可以采取哪些步骤来纠正这个问题?
【问题讨论】:
-
在
using块内扭曲你的代码,它会破坏任何未清理的对象。 -
那么
FileList中有空引用吗? 究竟堆栈跟踪是什么样的? -
@Khushi 你能详细解释一下,因为我是 C# 新手
-
@Khushi:
using语句将确保调用Dispose。它实际上不会破坏对象。 -
@JonSkeet 我错了。感谢您提及。
标签: c# .net file-io nullreferenceexception streamreader