تصميم حدث
وتكون الأحداث آليات تسمح بالتعليمات البرمجية الخاصة بالتطبيق إلى تنفيذه عند حدوث أي إجراء. وقوع أحداث قبل إجراء المقترن (pre-events) أو بعد حدوث إجراء (ينشر-events). على سبيل المثال، عند قيام مستخدم بالنقر فوق أحد أزرار في نافذة، وحدث بعدي هو raهوed مما يسمح للوظائف الخاصة بالتطبيق لينفذ. تفويض معالج أحداث هو مرتبط بالأسلوب الذي يتم تنفيذه عند raهوes النظام حدث. معالج الأحداث هو تمت الإضافة إلى حدث حيث أنه هو قادراً على استدعاء الأسلوب الخاص بها عند حدث هو raهوed. يمكن أن يكون حدث s حدث-بيانات معينة (على سبيل المثال، ماوس باستمرار حدث يمكن أن تضمين بيانات حول الموقع رأس المؤشر شاشة).
توقيع الأسلوب معالجة حدث هو مماثلة للتوقيع الرقمي للمفوض معالج الأحداث. حدث-توقيع معالج observes الاصطلاحات التالية:
نوع الإرجاع هو Void.
معلمة الأولى هو باسم senderو هو من النوع Object. هذا هو الكائن الذي يقوم بتشغيل حدث.
معلمة ثانية هو باسم eو هو من النوع EventArgsأو فئة مشتقة من EventArgs.Th هو هو بيانات الخاصة بالحدث.
أسلوب يأخذ معلمتين تماما.
لمزيد من المعلومات حول هذه الأحداث، انظر معالجة و إظهار الأحداث.
هل استخدم المصطلحات رفع للأحداث بدلاً من الحماية أو يشغّل.
قم باستخدام النظام.EventHandler <T> بدلاً من إنشاء التفويضات الجديدة يدوياً إلى يمكن استخدامه كمعالجات الأحداث.
يتم تطبيق هذه الإرشادات العامة أساسا إلى المناطق ميزة جديدة. إذا كنت يتم توسيع الأداء الوظيفي في مساحة تستخدم معالجات الأحداث غير العام بالفعل، يمكنك الاستمرار في إلى استخدام معالجات أحداث عام غير إلى الحفاظ على التصميم متناسق.
لا يتفق مع هذه الإرشادات العامة إذا كانت المكتبة الخاصة بك تستهدف إصدارات.NET Framework التي لا تعتمد عام.
خذ بعين الاعتبار استخدام فئة مشتقة من النظام.EventArgs كوسيطة حدث، ما لم تكن متأكداً تماما بعدم حاجة حدث إلى تحمل أي بيانات إلى أسلوب معالجة حدث، في هذه الحالة يمكن استخدام نوع النظام.EventArgs مباشرة.
إذا عرفت حدث الذي تستغرقه EventArgsمثيل عوضاً المشتق فئة أن تقوم بتعريفها، لا يمكنك إضافة بيانات إلى الحدث في الإصدارات الأحدث. لهذا السبب، فإنه هو المفضل لإنشاء فئة مشتقة فارغة من EventArgs. This allows you إضافة بيانات إلى the حدث في later versions without introducing breaking التغييرات.
Do استخدم a protected ظاهري أسلوب إلى raise each حدث.This هو applicable فقط إلى non-ثابت أحداث تشغيل unsealed فئات, not إلى structures, sealed فئات, أو ثابت أحداث.
Complying مع this guideline allows derived فئات إلى مؤشر a فئة الأساس حدث بواسطة overriding the protected أسلوب. The اسم of the protected virtual (Overridable في Visual أساسى) أسلوب should be the same كـ the حدث اسم prefixed مع On. For مثال, the protected ظاهري أسلوب for an حدث named "TimeChanged" هو named "OnTimeChanged".
هام |
---|
Derived فئات that يمنع the protected ظاهري أسلوب are not مطلوب إلى يتصل the فئة الأساس implementation.The فئة الأساس must متابعة إلى work correctly even if its implementation ليس called. |
Do استخدم a معلمة that هو typed كـ the حدث وسيطة فئة إلى the protected أسلوب that raises an حدث.The معلمة should be named e.
FontDialogفئة توفير الأسلوب التالي، الذي يرفع Applyحدث:
Protected Overridable Sub OnApply( ByVal e As EventArgs )
protected virtual void OnApply(EventArgs e);
هل pكـs فارغة (أي في Visual أساسى Bكـic) كـ المعلمة المرسل عند رفع حدث غير ثابت.
على ثابت الأحداث، senderيجب أن تكون معلمة null(Nothingفي Visual أساسى).
هل pكـs فارغة (أي في Visual أساسى Bكـic) كـ المعلمة بيانات الحدث عند رفع حدث.
إذا كان هناك هو لا توجد بيانات حدث، تمرير Emptyبدلاً من null.
قم بتحضير لتنفيذ تعليمات برمجية إجبارية في أسلوب معالجة حدث.
لابد أن تراعي وضع تعليمات برمجية بحيث يظهر حدث في حظر catch بمحاولة لمنع إنهاء البرنامج بسبب استثناء غير معالج تم طرح من معالجات الأحداث.
خذ بعين الاعتبار رفع الأحداث التي يمكن إلغاء الأمر مستخدم النهائي.ينطبق هذا فقط إلى pre-أحداث.
إذا كنت تقوم بتصميم حدثاً cancelable، باستخدام CancelEventArgsبدلاً من EventArgsكـ clكـs bكـe لكائن بيانات حدث e.
أجزاء حقوق النشر 2005 Microsoft Office 2010 Suite Corporation. كافة الحقوق محفوظة.
أجزاء حقوق النشر شركة Addison-Wesley. كافة الحقوق محفوظة.
ل المزيد المعلومات تشغيل إرشادات التصميم، راجع "إطار عمل إرشادات التصميم: كتاب اصطلاحات، Idioms، و نقش لمكتبات.NET القابل لإعادة الاستخدام"ب Krzysztof Cwalina و رفيق Abrams، ينشره Addison-Wesley، 2005.