تحذيرات التصميم
قم بتصميم تحذيرات دعم بها إلى إرشادات تصميم إطار عمل.NET.
في هذا القسم
القاعدة |
الوصف |
---|---|
عندما يقوم عضو ثابتة من نوع عام هو يسمى، وسيطة "نوع" يجب تحديد نوع. عندما يقوم عضو مثيل عام يعتمد الاستخراج هو يسمى، وسيطة "نوع" يجب تحديد للعضو. في هذه الثاني حالات، بناء الجملة لتعيين وسيطة "نوع" هو مختلف ومرتبك بسهولة. |
|
تعريف فئة و implements مثيل الحقول التي هو لا تطبق على نوع النظام.IDهوposable، والفئة IDهوposable. تملك فئة الذي يقوم بتعريف حقل IDisposable شكل غير مباشر لمورد غير مدار و يجب أن يقوم بتطبيق واجهة IDisposable. |
|
النظام.Collections.Generic.Lهوt < (من <(T>) >) هو مجموعة عامة مصممة للأداء، لا توريث. ولذلك، لا تحتوي قائمة على أي الأعضاء الظاهري. يجب أن يكون عرض المجموعات العامة التي تم تصميمها للوراثة بدلاً من ذلك. |
|
يحتوي على نوع تفويض إرجاع فارغ (Void)، ويتضمن توقيع الخاصة به معلمتين (الكائن أول والثاني النوع الذي هو قابل للتعيين إلى EventArgs)، وتستهدف التجميع الذي يحتوي.NET Framework 2.0. |
|
الاستخراج هو كيف وسيطة نوع من الأسلوب العام هو يفرضها نوع الوسيطة التي تم تمريرها إلى الأسلوب، بدلاً من مواصفات وسيطة "نوع" صريح. لتمكين الاستخراج، يجب أن يتضمن توقيع الأسلوب العام معلمة معلمة التي هو من نفس النوع كمعلمة نوع للأسلوب. في هذه الحالة، وسيطة "نوع" لم يكن إلى أن يكون محدداً. عند استخدام الاستخراج لكافة معلمات نوع، بناء جملة استدعاء وظائف مثيل عام وعام غير هو مماثلة؛ th هو يسهل استخدام الطرق العامة. |
|
مزيد من المعلمات نوع يحتوي على نوع عام، أكثر صعوبة هو لمعرفة وتذكر ما يمثل كل معلمة نوع. وعادة واضحة بمعلمة نوع واحد، كما في قائمة <T> و في حالات معينة باستخدام نوع معلمتين، كما في القاموس < TKey، TValue >. على الرغم من ذلك، إذا كان هناك المزيد معلمتين النوع، يصبح كبيرا جداً لمعظم المستخدمين الصعوبة. |
|
وسيطة نوع متداخل هو وسيطة نوع الذي أيضا نوع عام. لإجراء مكالمة عضو توقيع الذي يحتوي على وسيطة نوع متداخل، يجب إنشاء مثيل لنوع عام واحد مستخدم وتمرير هذا النوع الدالة الإنشائية نوع عام الثاني. إجراء المطلوب وبناء الجملة هو معقدة ويجب تجنب. |
|
أسلوب مرئي خارجياً يحتوي على معلمة مرجع نوع النظام.كائن. استخدام عام أسلوب تمكين الجميع أنواع، يخضع للقيود لتمريرها إلى أسلوب دون اﻷول بث نوع إلى نوع مرجع معلمة. |
|
القيمة افتراضية للتعداد un-initialized، تماما كالقيمة أخرى أنواع، هو صفر. يجب تعريف قائمة تعداد غير ذات علامات سببا عضو ذات القيمة صفر حيث تكون قيمة افتراضية هو قيمة صالحة للقائمة تعداد. إذا كان قائمة تعداد يحتوي FlagsAttribute تطبيق السمة بتعريف عضو valued على صفر، يجب أن يكون اسمه "بلا" للإشارة إلى أنه لا توجد قيم تم تعيينها قائمة تعداد. |
|
Run a Data Generation Plan to Generate Data Merging Multiple Databases into a Database Project |
معالج الأحداث وظائف أخذ معلمتين. أول هو من النوع النظام.كائن و هو المسمى "المرسل". هذا هو الكائن الذي يقوم بتشغيل حدث. معلمة ثانية هو من نوع النظام.EventArgs و هو المسمى "e". Th هو هو بيانات المقترنة بحدث. لا يجب أن وظائف معالج حدث بإرجاع القيمة؛ في C# لغة البرمجة، وهذا هو الإشارة بواسطة العائد نوع القيمة فارغة. |
إلى توسيع مدى الاستفادة من مجموعة، قم بتطبيق إحدى الواجهات المجموعة العامة. ثم يمكن استخدام المجموعة إلى تعبئة أنواع المجموعات العامة. |
|
تطبيق 32 بت تشغيل في عملية مدارة حدود ذاكرة. إنشاء و قيد التشغيل خطة إنشاء بيانات |
عند نوع أساس هو المحدد كمعلمة في إعلان أسلوب، أي نوع مشتق من النوع الأساسي يمكن تمرير كوسيطة المطابق للأسلوب. في حالة توفير وظائف إضافى بنوع معلمة المشتقة هو غير مطلوب، يمكن استخدام النوع الأساسي من أسلوب استخدام أوسع. |
يمكن استدعاء المنشئات تشغيل أنواع المجردة فقط بواسطة الأنواع المشتقة. لأن المنشئات العامة إنشاء مثيلات لنوع، و إمكانية إنشاء مثيلات لنوع مجردة، مصمم على نوع مجردة مع على الدالة الإنشائية عام غير صحيح. |
|
ca1013: يساوي عامل التحميل الزائد تشغيل التحميل الزائد إضافة وطرح |
نوع عامة أو محمية بتطبيق عوامل الجمع أو الطرح أو بدون تطبيق عامل المساواة. |
مواصفة اللغة العامة (CLS) بتعريف قيود التسمية، وبيانات أنواع، والقواعد التي يجب أن يطابق تجميعات إذا كانت للاستخدام عبر لغات البرمجة. جيدة تصميم يفرض أن الجميع تجميعات الإشارة بوضوح إلى التوافق مع CLS مع CLSCompliantAttribute. إذا كان هذا سمة هو غير موجود في تجميع، التجميع غير متوافقة. |
|
برنامج.NET Framework يستخدم رقم الإصدار إلى يعرف تجميع، و إلى يربط إلى أنواع في تجميعات باسم واضح. رقم إصدار هو المستخدمة مع نهج الإصدار و publهوher. بواسطة تشغيل التطبيقات بشكل افتراضي فقط مع الإصدار تجميع الذي التي تم إنشاؤها. |
|
يحدد ComVisibleAttribute كيفية وصول عملاء COM إلى تعليمات برمجية مُدارة. يفرض بضاعة التصميم إلى تجميعات وضوح رؤية COM. يمكن تعيين للتجميع الكامل الرؤية COM وثم تجاوزها لفرد أنواع واكتب الأعضاء. إذا كان هذا سمة هو غير موجود، محتويات تجميع مرئي إلى عملاء COM. |
|
وضع علامة عند تعريف سمة مخصصة، بواسطة استخدام AttributeUsageAttribute للإشارة إلى مكان في تعليمات برمجية المصدر سمة مخصصة يمكن تطبيقها. معنى السمة و الغرض من استخدام ستحدد بها مواقع? صالحة في تعليمات برمجية. |
|
يمكنك تعريف سمات الوسيطات mandaإلىry التي يجب أن يتم تحديد عند يطبق السمة إلى هدف. وهي تدعي أيضا الوسيطات الموضعية سبب فإنها تقوم بتزويد إلى السمة construcإلىrs كمعلمات الموضعية. لكل وسيطة إلزامية، سمة يجب أن توفر أيضا المقابلة خاصية القراءة فقط حيث يمكن استرداد القيمة الوسيطة في وقت التنفيذ. يمكنك أيضا تعريف الوسيطات الاختيارية، والتي تعرف أيضا على السمات كـ الوسيطات المسماة. يتم توفير هذه الوسيطات إلى السمة construcإلىrs باسمه ويجب أن يكون لخاصية قراءه/كتابه المطابق. |
|
تأكد من أن هناك هو مؤسسة منطقية لكل من مساحات الاسم الخاصة بك، ولذلك هناك هو سبب صحيح لوضع أنواع في مساحة الاسم sparsely populated. |
|
تمرير أنواع حسب المرجع (استخدام السحب أو مرجع) يتطلب خبرة مع مؤشرات, understوing بقيمة أنواع لكيفية و تختلف أنواع المرجع، و وظائف hوling مع قيم الإرجاع المتعددة. وكذلك الفرق بين الخارج والمعلمات المرجع هو نطاق واسع غير مفهومة. |
|
مفهرسات (التي هو، تتم فهرسة الخصائص) يجب استخدام فهرس مفرد. يمكنك تقليل مفهرسات متعددة الأبعاد مدى الاستفادة المكتبة. |
|
أسلوب عام أو محمية لها اسم يبدأ ب "الحصول علي" تأخذ بدون معلمات وإرجاع القيمة هو غير صفيفة. أسلوب قد يكون وجود مرشح جيد تصبح خاصية. |
|
استخدام صفيفة معلمات بدلاً من الوسيطات متكررة عند عدد الوسيطات هو معروفة وعندما تكون الوسائط متغير نفسه كتابة أو يمكن تمرير كنفس النوع. |
|
الأساليب التي تستخدم الافتراضي معلمات مسموح بها ضمن مواصفة اللغة العامة (CLS)؛ على الرغم من ذلك، يسمح CLS compilers تجاهل قيم المعينة لهذه المعلمات. للحفاظ على سلوك الذي تريده عبر لغات البرمجة، والوظائف التي تستخدم الافتراضي يجب استبداله معلمات باستخدام أسلوب التحميلات الزائدة التي توفر الافتراضي المعلمات. |
|
قائمة تعداد هو نوع القيمة التي تعرف التعيين مرتبطة باسم الثوابت. قم بيطبق FlagsAttribute إلى لتعداد عند دمج به ثوابت مسماة meaningfully. |
|
قائمة تعداد هو نوع القيمة التي تعرف التعيين مرتبطة باسم الثوابت. بشكل افتراضي، نوع بيانات النظام.Int32 هو المستخدمة لتخزين القيمة ثابتة. على الرغم من أن يمكنك تغيير ترتيب هو، النوع الأساسي من هو غير المطلوبة أو المستحسنة لمعظم سيناريوهات. |
|
هذه قاعدة بالكشف عن الأساليب التي لها أسماء عادة سوف يتم استخدامه ل أحداث. إذا كان أسلوب هو يسمى استجابة لتغيير الولاية معرفة بوضوح، الأسلوب الذي يجب طلبه من قبل معالج أحداث. يجب رفع الكائنات التي تقوم باستدعاء الأسلوب الأحداث بدلاً من استدعاء الأسلوب مباشرة. |
|
يجب أن لا يتم حظر استثناءات عامة. تصفية استثناء الخاصة بالمزيد، أو re-رمى استثناء عام كالعبارة الأخيرة في حظر catch. |
|
Comparing Profiling Tools Data Files Controlling Data Collection in Profiling Tools |
فشل إلى توفر التعيين كاملة من construcإلىrs يجعل من الصعب إلى معالجة الاستثناءات بشكل صحيح. |
نوع مرئي خارجياً unsealed يوفر تطبيق أسلوب واضح للواجهة العمومية و لا يوفر طريقة بديلة مرئي خارجياً بنفس الاسم. |
|
نوع متداخل هو نوعا التي تم تعريفها في نطاق نوع آخر. متداخلة نوع s مفيدة لتغليف تفاصيل التنفيذ الخاصة احتواء نوع. يستخدم لهذا الغرض، أنواع المتداخلة يجب إلا تكون مرئي خارجياً. |
|
تتطلب هذه قاعدة تطبيقات ICollection لتوفير الأعضاء مكتوب بشدة بحيث يمكن للمستخدمين غير مطلوب تحويل وسائط لنوع كائن عند استخدامهم للوظائف المتوفرة من قبل الواجهة. تفترض هذه قاعدة أن النوع الذي يقوم بتنفيذ ICollection أدى ذلك لإدارة مجموعة من مثيلات من نوع أقوى من الكائن. |
|
نوع عامة أو محمية بتنفيذ واجهة النظام.IComparable. لا يتجاوز كائن.يساوي ولا يقوم به زيادة التحميل عن العامل خاصة بلغة معينة لمساواة، inequality، أصغر من، أو أكبر من. |
|
تتطلب هذه قاعدة تطبيقات IEnumerator أيضا بتوفير نسخة مكتوبة بشدة خاصية الحالي حيث لا يطلب من المستخدمين تحويل القيمة المرجعة إلى نوع قوي عند استخدامهم للوظائف المتوفرة من قبل الواجهة. |
|
تتطلب هذه قاعدة تطبيقات IList لتوفير شدة الأعضاء نوع d حيث لا يطلب من المستخدمين تحويل وسائط النظام.كائن نوع عند استخدامهم للوظائف المتوفرة من قبل الواجهة. |
|
تعريف واجهات أعضاء توفر سلوك أو استخدام اتفاق. وظائف الموصوفة بواسطة يمكن أن تستخدم الواجهة بواسطة أي نوع، بغض النظر عن مكان ظهور النوع في هيكلي للوراثة. يطبق نوع واجهة بتوفير تطبيقات لأعضاء الخاص بالواجهة. واجهة فارغ لا بتعريف أي الأعضاء؛ ولذلك، تعريف عقد التي يمكن تطبيق لا. |
|
يجب أن يكون تخزين التعداد Int32 مؤشر ترابط محلل ملفات التعريف محتوى بيانات عرض "تفاصيل"- |
نوع أو عضو هو يحمل سمة النظام.ObsoleteAttribute لم يتم تحديد خاصية ObsoleteAttribute.رسالة الخاصة به. عندما النوع أو عضو عليها ObsoleteAttribute هو ترجمة خاصية الرسالة للسمة هو dهوplayed، وإعطاء مستخدم معلومات نوع قديمة أو عضو. |
المفوضون must يربط إلى وظائف مع consistent الشفافية Comparing the بيانات of الثاني Databases |
مفهرسات (التي هو، تتم فهرسة الخصائص) يجب استخدام أنواع تكامل أو سلسلة لهذا الفهرس. وتستخدم هذه الأنواع عادة لفهرسة بيانات البنى و يقومون بزيادة مدى الاستفادة المكتبة. يجب أن يكون استخدام نوع كائن مقيد إلى تلك الحالات الموقع لا يمكن تحديد نوع صحيح أو سلسلة معينة في تصميم الوقت. |
أثناء ذلك هو مقبولة والضروري غالباً ما تحتوي على خاصية للقراءة فقط، تصميم إرشادات منع استخدام خصائص كتابة فقط لأنه يسمح لمستخدم بتعيين قيمة، ومن ثم منع مستخدم من عرض هذه القيمة، لا يوفر أي الأمان. أيضا، بدون حق الوصول للقراءة، الولاية الكائنات المشتركة ولا يمكن عرضه، التي تحد من فائدة الخاصة بهم. |
|
لا يجب أن يكون لديك أحداث قبل أو بعد البادئة إدراج علامات في ملف بيانات محلل ملفات التعريف |
تمرير أنواع حسب المرجع (استخدام السحب أو مرجع) يتطلب خبرة مع مؤشرات, understوing بقيمة أنواع لكيفية و تختلف أنواع المرجع، و وظائف hوling مع قيم الإرجاع المتعددة. مهندسو المكتبة الذي قام بتصميم لجماعة مستهدفة عامة يجب أن لا تتوقع أن المستخدمين إلى الرئيسي العمل بالخارج أو المعلمات المرجع. |
حفظ معلومات الرمز مع إنشاء تشكيل جانبي لملفات بيانات ca2116: |
ل مرجع بالكتابة، يتم تطبيق الافتراضي عامل المساواة دائماً الصحيح. عن طريق الافتراضي، تساوي مرجعين فقط إذا كانت الإشارة إلى نفس الكائن. |
أنواع التصريح عضو s محمي بحيث ترث أنواع يمكن الوصول إليه أو يمنع عضو. بواسطة View تعريف, مغلقة أنواع يمكن لا وراثة، مما يعني أنه لا يمكن استدعاء وظائف المحمية تشغيل أنواع مختوم. |
|
تعريف أنواع وظائف كـ الظاهري حيث ترث أنواع يمكن إبطال تطبيق أسلوب ظاهري. بواسطة التعريف، لا يتم توريث نوعا مختوم. وهذا يجعل ظاهري أسلوب تشغيل نوع مختوم الغامضة. |
|
يجب تطبيق أنواع يخصص موارد غير مدار IDisposable، إلى تمكين المتصلين إلى لإصدار تلك الموارد حسب الطلب و إلى لتقصير مدة حياة الكائنات الضغط بالموارد. |
|
يتم تعريف الأنواع في مساحات الأسماء إلى منع عدد التضاربات اسم، و كوسيلة إلى تنظيم أنواع ذات الصلة في التسلسل هرمي لكائن. |
|
يجب أن يكون استخدم الأساسي حقل كـ تفصيل تطبيق. يجب أن تكون حقول خاصة أو داخلي و يجب عرضها باستخدام خصائص. |
|
نوع عامة أو محمية تحتوي على الأعضاء ثابتة فقط و هو لم يتم تعريفها بالمعدل (C# المرجع) (NotInheritable) مختوم. هو نوع لم يتم إنشاء إلى يتم توارث يجب وضع علامة باستخدام معدّل مختوم إلى منع استخدامها كنوع أساس. |
|
تعريف نوع عام أو متداخلة عامة فقط الأعضاء ثابتون ويحتوي على الدالة الإنشائية افتراضي عام أو محمية. الدالة الإنشائية غير ضرورية لأن استدعاء الأعضاء ثابتة ولا يتطلب وجود مثيل من النوع. يجب أن التحميل الزائد لسلسلة من استدعاء التحميل الزائد URI الخاص باستخدام وسيطة السلسلة لأمان و أمان. |
|
إذا استغرق أسلوب تمثيل سلسلة URI، يجب أن يكون التحميل الزائد المقابلة شرط التي تأخذ مثيل فئة URI، والذي يوفر هذه الخدمات في اﻷمن و أسلوب اﻷمن. |
|
تفترض هذه قاعدة التي أسلوب ترجع معرّف موقع المعلومات (URI). تمثيل سلسلة URI هو عرضه لتحليل الأخطاء، والترميز ويمكن أن يؤدي إلى مشاكل عدم حصانة الأمان. الفئة النظام.Uri يوفر هذه الخدمات في اﻷمن و أسلوب اﻷمن. |
|
تفترض هذه قاعدة أن يمثل خاصية معرّف موقع المعلومات (URI). تمثيل سلسلة URI هو عرضه لتحليل الأخطاء، والترميز ويمكن أن يؤدي إلى مشاكل عدم حصانة الأمان. الفئة النظام.Uri يوفر هذه الخدمات في اﻷمن و أسلوب اﻷمن. |
|
نوع التصريح التحميلات الزائدة الطريقة التي تختلف فقط باستبدال معلمة سلسلة مع معلمة النظام.Uri. لن استدعاء التحميل الزائد الذي يأخذ معلمة سلسلة التحميل الزائد الذي يأخذ معلمة URI. |
|
نوع مرئي خارجياً بتوسيع بعض الأساس أنواع. استخدم واحد البدائل. |
|
نوع ماديا هو نوع تنفيذ ما كاملة ولذلك يمكن أن يكون إنشاء. إلى تمكين استخدام العضو، استبدله خرسانة نوع الواجهة المقترحة. |
|
وظائف استدعاء النظام الأساسي، مثل وضع علامة عليها بالسمة System.وقت التشغيل.InteropServices.DllImportAttribute أو الأساليب التي تم تعريفها باستخدام الكلمة أساسى Declare في Visual أساسى، الوصول إلى تعليمات برمجية غير مُدارة. يجب أن تكون هذه الأساليب للفئة NativeMethods أو SafeNativeMethods UnsafeNativeMethods. |
|
أسلوب في نوع أساس هو مخفية بواسطة أسلوب مسماة بالمثل في نوع مشتق، عند توقيع معلمة أسلوب المشتقة يختلف فقط عن طريق أنواع أكثر weakly مشتقة من أنواع المناظرة في التوقيع معلمة الأسلوب الأساسي. |
|
محدد من الجميع الوسيطات مرجع التي تم تمريرها إلى وظائف مرئي خارجياً وجود مقابل null. |
|
يجب تطبيق الجميع أنواع IDisposable نقش تخلص بشكل صحيح. |
|
استثناء داخلي هو vهوible فقط داخل نطاق الداخلي الخاص بها. بعد أن يصبح استثناء خارج نطاق داخلي، يمكن استخدام استثناء الأساسي فقط إلى تصفية استثناء. إذا كان استثناء الداخلي هو موروثة من T:النظام. استثناء أو T:النظام.النظام استثناء T:النظام.Application استثناء، الرمز الخارجي لا يكون لها معلومات كافية لمعرفة ما يمكن القيام به مع استثناء. |
|
أسلوب الذي هو ليس من المتوقع أن يقوم بطرح استثناء throws استثناء. |
|
قوي اسم على حماية العملاء من unknowingly تحميل تجميع الذي تم العبث. يجب أن لا يتم نشر تجميعات بدون أسماء قوية خارج سيناريوهات محدودة جداً. إذا قمت بمشاركة أو توزيع تجميعات التي لم يتم توقيعها بشكل صحيح، يمكن أن يتم العبث تجميع، وقت تشغيل اللغة العامة قد لا يتم تحميل تجميع، أو قد يكون للمستخدم إلى تعطيل التحقق على جهاز الكمبيوتر الخاص به. |