类型或命名空间名称"StreamReader"找不到

本文关键字:quot StreamReader 找不到 命名空间 类型 | 更新日期: 2023-09-27 18:10:34

我正在用c#开发StreamReader。我得到错误

"类型或命名空间名称"StreamReader"找不到"

我不知道我做错了什么。

using System.IO;
using System;
class Perfect
{
static void Main()
    {
    string filename = @"marks.cvs";
    StreamReader sr = new StreamReader(filename);
    string line = sr.ReadLine();
    Console.WriteLine(line);    
    sr.Close();
    }
}

类型或命名空间名称"StreamReader"找不到

StreamReaderSystem.IO命名空间中。您可以在代码的顶部添加这个命名空间,方法如下:

using System.IO;

或者,您可以完全限定StreamReader的所有实例,如下所示-

System.IO.StreamReader sr = new System.IO.StreamReader(filename);

但是这可能会变得有点乏味,特别是如果您最终在System.IO中使用其他对象。因此,我建议使用前者。

更多关于名称空间和using指令的信息-

https://msdn.microsoft.com/en-us/library/0d941h9d.aspx

https://msdn.microsoft.com/en-us/library/sf0df423.aspx

StreamReader需要一个您缺少的名称空间。将这两个添加到.cs文件的顶部。

using System;
using System.IO;
StreamReader sr = new StreamReader(filename);

最好的做法是在文件的顶部添加命名空间。但是,您可以像这样添加@iliketocode提到的System.IO.StreamReader

System.IO.StreamReader sr = new System.IO.StreamReader(filename);

我不打算把答案贴出来,只是有另一个好的编程实践要指出来。

首先,回答你的问题,如果你想使用StreamReader,你需要告诉编译器在哪里找到它。在.cs文件的顶部添加一个using System.IO.StreamReader;可以做到这一点。

其次,当使用流时,最好将与流的交互包装在using(){}中。我会这样写你的代码:

using System;
using System.IO;
using System.IO.StreamReader;
class Perfect
{
    static void Main()
    {
        const string filename = @"marks.cvs";
        using (var sr = new StreamReader(filename))
        {
            string line = sr.ReadLine();
            Console.WriteLine(line);
        }
    }
}