TextReader.ReadLine Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser en rad med tecken från textläsaren och returnerar data som en sträng.
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
Returer
Nästa rad från läsaren eller null om alla tecken har lästs.
Undantag
Ett I/O-fel inträffar.
Det finns inte tillräckligt med minne för att allokera en buffert för den returnerade strängen.
Är TextReader stängd.
Antalet tecken på nästa rad är större än Int32.MaxValue
Kommentarer
En rad definieras som en sekvens med tecken följt av en vagnretur (0x000d), en radmatning (0x000a), en vagnretur följt av en radmatning Environment.NewLineeller slutet av läsarens indata. Strängen som returneras innehåller inte den avslutande vagnreturen eller radmatningen. Returvärdet är null om slutet av indata har nåtts.
Om indata slutar med en ny linjesekvens returneras ingen ytterligare tom rad. Indata som innehåller "line1\nline2\n" genererar till exempel samma två rader ("line1" och "line2") som indata som innehåller "line1\nline2".
Om metoden utlöser ett OutOfMemoryException undantag avanceras läsarens position i den underliggande källan av antalet tecken som metoden kunde läsa, men de tecken som redan lästes in i den interna ReadLine bufferten ignoreras. Eftersom läsarens position i den underliggande källan inte kan återställas går det inte att återställa de tecken som redan har lästs och kan endast nås genom att objektet initieras på nytt TextReader . Om den ursprungliga positionen i den underliggande källan är okänd eller om källan inte stöder ompositionering måste även den underliggande källan initieras igen.
För att undvika en sådan situation och skapa robust kod bör du använda Read metoden och lagra lästecken i en förallokerad buffert.
Klassen TextReader är en abstrakt klass. Därför instansierar du den inte i koden. Ett exempel på hur du ReadLine använder metoden finns i StreamReader.ReadLine metoden.