Frage

Ich bin nur neugierig darüber. Es scheint mir, dass das Verhalten eines String funktionell ist (wenn nicht technisch) die gleiche wie ein Stream -. Es ist ein Behälter von Daten, zu denen anderen Daten hinzugefügt werden können,

Wieder nur neugierig.

War es hilfreich?

Lösung

Strom ist eine Eingabe und Ausgabe von binary Daten.

String ist es, Mittel für den Aufbau von text Daten.

Darüber hinaus gibt es die Frage der staatlichen - ein String nur den aktuellen Wert hat, ohne zu wissen, „Position“. Es ermöglicht Ihnen, Daten überall in ihm den Zugriff auf und mutieren. Ein Strom, auf der anderen Seite, ist logisch ein potentiell unendlicher Strom von Daten mit einem Cursor irgendwo in der Mitte zu sagen, wo Sie habe. Sie in der Regel nur nach vorne lesen / schreiben, mit Seek / Position auf einen bestimmten Teil des Datenstroms zu überspringen.

Versuchen Sie die Umsetzung der Stream-API mit Stringbuilder vorstellen ... es passt einfach nicht. Sie könnten Art von tut es, aber Sie würden mit String und String am Ende, im Grunde.

Andere Tipps

StringBuilder hat mehr als nur Funktionen anhängen. Es hat auch Insert-Funktionen, die für einen Strom unnatürlich ist. Verwenden Sie die StringWriter Klasse, wenn Sie einen Stream wollen, die eine StringBuilder hüllt.

Ein Strom bezieht sich normalerweise auf eine externe Eingabe- / Ausgabequelle (Datei, Netzwerk). String hat keine solche Charakteristik.

Weil es nicht wirklich ein Strom ist. Es ist eher ein Puffer, der wächst.

Während beide Daten, die ihnen zugefügt haben kann, die Funktionalität als Ganzes ist anders.

Ein Strom ist für die Eingabe oder Daten von / zu einer Quelle ausgeben, nicht für etwas zu bauen. Stringbuilder nicht Funktionalität benötigen, den Strom liefert, wie Buffering, etc, eine Ressource zu bauen.

Auf der anderen Seite finden Sie die Klassen String / Writer in System.IO. Die String z.B. Arbeitsgeräte Textwriter gegen eine darunter liegende String .

Persönlich habe ich es nie benutzt, aber wenn Sie eine Textdatei schreiben Routine könnte man es gegen eine funktioniert Textwriter . Dann in Ihrem Test, statt der Instanziierung ein Stream Sie instanziieren ein String und Sie könnten dann überprüfen, was mit Blick auf die zugrunde liegenden String geschrieben wurde.

Jetzt bin ich schwindlig ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top