سؤال

أنا فقط فضولي حول هذا الموضوع.يبدو لي أن سلوك بـ stringbuilder وظيفيا (إن لم يكن من الناحية الفنية) نفس تيار إنها سلة من البيانات إلى بيانات أخرى يمكن إضافتها.

مرة أخرى, مجرد فضول.

هل كانت مفيدة؟

المحلول

تيار الإدخال و الإخراج الثنائية البيانات.

بـ stringbuilder هو وسيلة بناء النص البيانات.

أبعد من ذلك ، هناك مسألة الدولة بـ stringbuilder فقط القيمة الحالية ، مع أي فكرة من "الموقف".فإنه يسمح لك بالوصول إلى وتتحور البيانات في أي مكان في داخلها.تيار ، من ناحية أخرى ، منطقيا يحتمل أن تكون لانهائية تيار من البيانات ، مع المؤشر في مكان ما في الوسط القول حيث كنت قد حصلت على.عموما مجرد القراءة/الكتابة إلى الأمام ، مع السعي/موقف للانتقال إلى جزء محدد من دفق البيانات.

حاول أن تتخيل تنفيذ تيار API مع بـ stringbuilder...هذا لا يصلح.هل يمكن أن نوع من فعل ذلك, ولكن كنت في نهاية المطاف مع StringReader و StringWriter أساسا.

نصائح أخرى

StringBuilder أكثر من مجرد إلحاق الوظائف.كما أن لديها إدراج الوظائف الذي هو غير طبيعي من أجل تيار.استخدام StringWriter فئة إذا كنت ترغب في تيار أن يلف StringBuilder.

تيار يشير عادة إلى خارجي الإدخال/الإخراج المصدر (ملف الشبكة).بـ stringbuilder لا يوجد لديه مثل هذه الخاصية.

لأنه ليس حقا تيار.إنه أكثر من المخزن المؤقت الذي ينمو.

في حين أن كلا يمكن أن يكون إضافة بيانات لهم وظائف ككل مختلفة.

تيار هو إدخال أو إخراج البيانات من/إلى بعض المصادر ، وليس من أجل بناء شيء.بـ stringbuilder لا تحتاج وظائف تيار توفر مثل التخزين المؤقت ، الخ لبناء الموارد.

من ناحية أخرى سوف تجد دروس StringReader/الكاتب في النظام.IO.على StringWriter على سبيل المثالتنفذ TextWriter ضد الأساسية بـ stringbuilder.

شخصيا لم استخدمه ولكن إذا كان لديك ملف نصي الكتابة الروتينية يمكن أن تجعل من العمل ضد TextWriter.ثم في الاختبار الخاصة بك بدلا من إنشاء مجموعة StreamWriter لك مثيل StringWriter ومن ثم يمكن أن تحقق ما كتبه النظر الأساسية بـ stringbuilder.

الآن أشعر بالدوار...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top