سؤال

مكررة من : سلسلة الانتاج:تنسيق أو concat في C# ؟

وخاصة في C# العالم باستخدام السلسلة.شكل كل شيء شائعة حقا ، عادة كما VB.NET المطور إلا علي* لا String.الشكل ،

انا افضل العادي سلسلة سلسلة ، مثل:

V1 = V2 & "test-x" & V3 & "-;"

بالنسبة لي هو أفضل من هذا:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

أنا في عداد المفقودين شيئا ؟ أم أن هذا مجرد تفضيل شخصي ؟

أسباب استخدام سلسلة.شكل (من الإجابات) (سأحاول الحفاظ على هذا حتى الآن)

  • التعريب هو أسهل بكثير إذا كنت تستخدم شكل سلسلة
  • من الواضح أنه من الأسهل لتغيير شكل المدخلات
  • هو أكثر قابلية للقراءة (ومع ذلك هذه الشخصية)
  • أداء أفضل

**في بعض الأحيان كنت بحاجة إلى تغيير نمط أو استبدال الأشياء بشكل حيوي ثم يمكنني استخدام سلسلة.شكل*

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

المحلول

إذا كنت من أي وقت مضى الذهاب إلى تعريب التطبيق الخاص بك (و غالبا ما يكون من الصعب السيطرة على ذلك في البداية) ، ثم سلسلة.الشكل هو أن يفضل كثيرا لسببين:

  1. لديك واحد فقط سلسلة حرفية ترجمة
  2. يمكنك تغيير ترتيب القيم, الذي قد يكون أكثر منطقية في لغة أخرى.

نصائح أخرى

الجميع قد نشرت حول كيفية قراءة السلسلة.شكل (الذي يقبل ، وقد null المرجع و التدويل فوائد نعم) ولكن لا أحد قد ذكر أنه إلى حد كبير أبطأ من بسيطة سلسلة سلسلة (عدد صغير من العناصر) أو باستخدام بـ stringbuilder (عدد كبير من concats).

إذا كان الأداء المسائل أو تفعله عدد كبير من العمليات (حتى الأداء قريبا سوف يهم) ثم يجب تجنب الشكل.

تحرير:المراجع حسب الطلب؛)

http://msmvps.com/blogs/jon_skeet/archive/2008/10/06/formatting-strings.aspx

http://blog.briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

مادة لطيفة هنا من قبل كارل سيغان: كود أفضل استخدام سلسلة.شكل شرح بعض المنافع.

الأسلوب الأول هو من الصعب جدا قراءة و أكثر من ممل إلى نوع.كما أن تبدأ بعمل الكثير من تلك تسلسالت ، هناك اعتبارات الأداء للتفكير.

إذا كنت فعلا تنسيق القيم ({0:d} الخ) ، السلسلة.تنسيق أفضل بكثير من قراءة من سلسلة سلسلة.

بالنسبة لي يعتمد على المحتويات.وصل سلاسل لا تخلق إضافية سلسلة الكائنات (لأن السلاسل هي ثابتة في .صافي) ، على الرغم أساسا انها readbility المسألة.

في بعض الأحيان فإنه يحصل معقدة عندما تريد وضع حرف السطر الجديد في سلسلة ، في هذه الحالة أنا أميل إلى استخدام شيء من هذا القبيل:

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));

شخصيا أجد هذه السلسلة.الشكل هو أسهل للقراءة ، سلسلة قدم واحدة متتالية النص.يعتمد ذلك على كيفية العديد من المعلمات هناك ، إذا كنت في حاجة للبحث عن حق المعلمة أن نفهم ذلك ، ثم ...

أعتقد أكثر من مسألة تفضيل.ولكن بمجرد أن بدأت في استخدامه بانتظام أكثر من فريقي الدعوى.عندما ناقشنا ذلك اتفق على أنه هو فقط من الأسهل فهم و قراءة.

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