متى يجب علي تحديد كليات الإكراهية أو الثابتة، متى يجب أن أتركها غير محددة؟

StackOverflow https://stackoverflow.com/questions/3231386

سؤال

ما هي أفضل الممارسات لتحديد تربية الإكراهية أو زراعة الثقافة وعدم تحديد الثقافة على الإطلاق؟

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

أجد أنه طويل، وقيريا، وقبيح معظم الوقت لتحديدها في كل مرة أفعل فيها، قل:

giveacodicetagpre.

ومع ذلك، فقد تحول فريقي مؤخرا إلى FXCOP مؤخرا، وهناك دفعة دائما للاستخدام دائما في كل مكان.ما هي أفضل تقنية للجمع بين الإيجاز أو قابلية القراءة والوظائف؟

بعض مواد القراءة الجيدة:

  • باستخدام خاصية InvarianTCulture
  • فئة cultureinfo
هل كانت مفيدة؟

المحلول

هناك مفاضلة متأصلة في اللعب هنا.

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

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

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

في رأيي، لا يوجد إجابة "حق" هنا - إنها تعتمد حقا على طلبك. إذا كان التطبيق الخاص بك هو تماما حول العرض التقديمي، وعدم القيام بالكثير من التلاعب بالبيانات، لا سيما مع أي نوع من تخزين الملفات ذاتية المدارة الذاتية، فإن إعداد الثقافة الحالية (وثقافة UI) مرة واحدة قد تكون على ما يرام. لقد وجدت أن التطبيقات الأكثر تعقيدا تميل إلى عدم العمل وكذلك في هذه الأزياء، في هذه الحالة تبدو اقتراحات FXCOP لتحديد هذا في كل مكان أكثر جاذبية.

نصائح أخرى

الافتراضي هو بالفعل الثقافة الحالية كما هوية بواسطة Windows.لذلك استخدام cultureinfo.currentculture صراحة مجرد مضيعة للوقت.سيؤدي أي تنسيق تسلسل لائق (بما في ذلك التسلسل الثنائي وتسلسل XML) إلى تسلسل تاريخ DateTime بطريقة ثابتة للثقافة.

باستخدام ثقافة ليست الافتراضية خطيرة للغاية.سيتم دائما تشغيل مؤشر ترابط الثقافة الافتراضية كما هو محدد بواسطة Windows وتكوينه من قبل المستخدم عندما قمت بتثبيت Windows..NET يبدأ مؤشرات الترابط الخيوط طوال الوقت، وسوف تخاطر بالحصول على ثقافة في هذا الموضوع يختلف عن مؤشر ترابطك الرئيسي.والتي يمكن أن تسبب جميع أنواع المشاكل الدقيقة.مثل وجود قائمة فرز التي لم يتم فرزها فجأة.

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