是否有Java的C#等价物';是线号阅读器吗?

是否有Java的C#等价物';是线号阅读器吗?,c#,C#,有没有与Java相当的C语言 i、 e.aStreamReader.ReadLine()保存行号计数。或者是通过创建的自定义子类并在重写的方法中实现必要的计数来实现这一点的唯一方法?在.NET Framework中没有直接的等价物 如果您创建一个自定义类,我建议您创建一个扩展和包装实例的类,这样它就可以与任何子类(,)一起使用 至少,您需要重写和方法。为了提高效率,还应该重写该类的所有其他虚拟方法 没有这样的功能。您必须保留一个局部变量并递增,或者实现一个简单的StreamReader: pub

有没有与Java相当的C语言


i、 e.a
StreamReader.ReadLine()
保存行号计数。或者是通过创建的自定义子类并在重写的方法中实现必要的计数来实现这一点的唯一方法?

在.NET Framework中没有直接的等价物

如果您创建一个自定义类,我建议您创建一个扩展和包装实例的类,这样它就可以与任何子类(,)一起使用

至少,您需要重写和方法。为了提高效率,还应该重写该类的所有其他虚拟方法


没有这样的功能。您必须保留一个局部变量并递增,或者实现一个简单的StreamReader:

public class CustomStreamReader : StreamReader
{
    private int _lineNumber  = 0;

    public CustomStreamReader(Stream stream)
        : base(stream)
    {
    }

    public int LineNumber 
    { 
        get 
        {
            return _lineNumber;
        } 
    }

    public override string ReadLine()
    {
        _lineNumber++;
        return base.ReadLine();
    }
}

请记住,该类假定您仅使用
流对其进行初始化,并且只调用
ReadLine()
。否则,您必须完全重写以确保
LineNumber
有效。

没有,但实现一个是很简单的。
public class CustomStreamReader : StreamReader
{
    private int _lineNumber  = 0;

    public CustomStreamReader(Stream stream)
        : base(stream)
    {
    }

    public int LineNumber 
    { 
        get 
        {
            return _lineNumber;
        } 
    }

    public override string ReadLine()
    {
        _lineNumber++;
        return base.ReadLine();
    }
}