هل تقوم بتسمية عناصر التحكم في النماذج باستخدام نفس الاصطلاح كمتغير خاص؟

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

سؤال

لسبب ما لا أرى هذا يحدث أبدًا.هل هناك سبب لعدم ذلك؟على سبيل المثال، أحب _blah للمتغيرات الخاصة، وعلى الأقل في Windows Forms تكون عناصر التحكم بشكل افتراضي متغيرات أعضاء خاصة، لكن لا أستطيع أن أتذكر رؤيتها مسماة بهذه الطريقة على الإطلاق.في حالة قيامي بإنشاء/تخزين كائنات التحكم في المتغيرات المحلية داخل وظيفة العضو، فمن المفيد بشكل خاص أن يكون هناك بعض التمييز البصري.

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

المحلول

قد يكون هذا غير بديهي بالنسبة للبعض، ولكننا نستخدم التدوين المجري المخيف لعناصر واجهة المستخدم.

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

  • مربع النص
  • تسمية تشير إلى أن مربع النص مخصص لتواريخ الميلاد
  • عنصر تحكم في التقويم يسمح لك بتحديد تاريخ

لذلك، سأستخدم lblBirthDate للتسمية، وtxtBirthDate لمربع النص، وcalBirthDate لعنصر تحكم التقويم.

أنا مهتم بسماع كيف يفعل الآخرون ذلك.:)

نصائح أخرى

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

أنا شخصيًا أبدأ الكائنات الخاصة بـ _

تكون عناصر التحكم في النموذج مسبوقة دائمًا بالنوع، the فقط سبب قيامي بذلك هو بسبب التحسس.باستخدام النماذج الكبيرة، يصبح من الأسهل "الحصول على قيمة التصنيفات" بمجرد الكتابة lbl واختياره من القائمة ^_^ ويتبع أيضًا المنطق الذي ذكره جون ليمجاب.

على الرغم من أن هذا يتوافق مرة أخرى مع إرشادات Microsoft .NET Coding، قم بمراجعتها هنا.

بالنسبة لي، الفوز الكبير في اصطلاح التسمية المتمثل في إضافة شرطة سفلية للأعضاء الخاصين له علاقة بـ Intellisense.نظرًا لأن الشرطة السفلية تسبق أي حرف في الأبجدية، فعندما أقوم بالضغط على مفتاح ctrl لإظهار التحسس الذكي، يوجد جميع أعضاء _privateMembers الخاص بي، في الأعلى مباشرةً.

ومع ذلك، فإن عناصر التحكم قصة مختلفة، فيما يتعلق بالتسمية.أعتقد أن هذا النطاق مفترض، وأن إضافة بضعة أحرف مسبقًا للإشارة إلى النوع (txtMyGroovyTextbox، على سبيل المثال) يكون أكثر منطقية لنفس السبب؛يتم تجميع عناصر التحكم في Intellisense حسب النوع.

لكن في العمل، يتم استخدام VB على طول الطريق، ونحن نقوم بتنفيذ mPrivateMember.أعتقد أن m قد يرمز إلى الوحدة النمطية.

لقد جئت عبر VB واحتفظت ببادئة نوع التحكم لعناصر التحكم.يستخدم أعضائي الخاصون حالة الجمل السفلية (firstLetterLowercase) بينما يستخدم الأعضاء العامون حالة Pascal/upper-camel (FirstLetterUppercase).

إذا كان هناك عدد كبير جدًا من المعرفات/الأعضاء/السكان المحليين بحيث تكون لديهم فرصة 90% لتذكر/تخمين الاسم، فربما يكون من الضروري إجراء المزيد من التجريد.

لم أقتنع أبدًا بأن بادئة نوع التخزين مفيدة و/أو ضرورية.ومع ذلك، فإنني أمارس عادة قوية تتمثل في اتباع نمط أي كود أستخدمه.

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

التدوين الهنغاري أم لا ، أنا أكثر فضولًا إذا قام الأشخاص بتعبئة M_ أو _ أو أي شيء يستخدمونه لمتغيرات الأعضاء الخاصة القياسية.

لوقا،

أستخدم _ البادئة لكائنات مكتبة الفصل الخاصة بي.أستخدم التدوين المجري حصريًا لواجهة المستخدم، للسبب الذي ذكرته.

لا أستخدم الشرطة السفلية مطلقًا في أسماء المتغيرات الخاصة بي.لقد وجدت أن أي شيء إلى جانب أحرف ألفا (أحيانًا الأبجدية الرقمية) يكون زائدًا ما لم تطلبه اللغة.

أنا في معسكر الأحرف الكبيرة/الصغيرة ("العنوان" خاص، "العنوان" عام)، ممزوج بالترميز "المجري" لمكونات واجهة المستخدم (tbTextbox، lblLabel وما إلى ذلك)، وأنا سعيد لأنه ليس لدينا مطورو Visual Case-Insensitive-Basic في الفريق :-)

لا أحب الشرطة السفلية لأنها تبدو قبيحة نوعًا ما، لكن يجب أن أعترف أن لها ميزة (أو عيبًا، اعتمادًا على وجهة نظرك):في مصحح الأخطاء، ستكون كافة المتغيرات الخاصة في الأعلى نظرًا لوجود _ في أعلى الأبجدية.ولكن مرة أخرى، أفضل أن يكون الزوج الخاص/العام معًا، لأن ذلك يسمح بتصحيح أخطاء منطق getter/setter بشكل أسهل عندما ترى الخاصية الخاصة والعامة بجوار بعضها البعض،

أكتب اسم عمود قاعدة البيانات الذي يمثلونه.

أستخدم m_ لمتغيرات الأعضاء، ولكني أميل بشكل متزايد إلى استخدام LowerCamelCase فقط كما أفعل مع معلمات الطريقة والمتغيرات المحلية.الأشياء العامة موجودة في UpperCamelCase.

يبدو أن هذا هو التقليد المقبول إلى حد ما عبر مجتمع .NET.

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