TextReader.ReadLine Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Odczytuje wiersz znaków z czytnika tekstu i zwraca dane jako ciąg.
public:
virtual System::String ^ ReadLine();
public virtual string ReadLine();
public virtual string? ReadLine();
abstract member ReadLine : unit -> string
override this.ReadLine : unit -> string
Public Overridable Function ReadLine () As String
Zwraca
Następny wiersz od czytnika lub null jeśli wszystkie znaki zostały odczytane.
Wyjątki
Występuje błąd we/wy.
Za mało pamięci do przydzielenia buforu dla zwracanego ciągu.
Element TextReader jest zamknięty.
Liczba znaków w następnym wierszu jest większa niż Int32.MaxValue
Uwagi
Linia jest definiowana jako sekwencja znaków, po której następuje powrót karetki (0x000d), źródło wiersza (0x000a), powrót karetki, po którym następuje źródło wiersza, Environment.NewLinelub koniec danych wejściowych czytnika. Zwracany ciąg nie zawiera powrotu karetki zakończenia ani zestawienia wiersza. Wartość zwracana jest null , jeśli osiągnięto koniec danych wejściowych.
Jeśli dane wejściowe kończą się sekwencją nowego wiersza, nie zostanie zwrócony dodatkowy pusty wiersz. Na przykład dane wejściowe zawierające "line1\nline2\n" generuje te same dwa wiersze ("line1" i "line2") jako dane wejściowe zawierające "line1\nline2".
Jeśli metoda zgłasza OutOfMemoryException wyjątek, pozycja czytelnika w jego źródłowym źródle jest zaawansowana przez liczbę znaków, które metoda mogła odczytać, ale znaki, które zostały już odczytane w buforze wewnętrznym ReadLine , są odrzucane. Ponieważ pozycja czytelnika w źródłowym źródle nie może zostać zresetowana, znaki, które zostały już odczytane, są nieodwracalne i można uzyskać do nich dostęp tylko przez ponowne inicjowanie TextReader obiektu. Jeśli pozycja początkowa w bazowym źródle jest nieznana lub źródło nie obsługuje zmiany położenia, bazowe źródło również musi zostać ponownie zainicjowane.
Aby uniknąć takiej sytuacji i utworzyć niezawodny kod, należy użyć Read metody i zapisać znaki odczytu w buforze wstępnie alokowanym.
Klasa TextReader jest abstrakcyjną klasą. W związku z tym nie tworzy się ich w kodzie. Aby zapoznać się z przykładem użycia ReadLine metody, zobacz metodę StreamReader.ReadLine .