الواجهات
الواجهات تعريف خصائص، الأساليب والأحداث التي يمكن تطبيق الفئات. واجهات تسمح لك بتحديد الميزات كمجموعات صغيرة من الخصائص ذات الصلة بشكل كبير وأساليب وأحداث؛ وهذا يقلل من مشاكل توافق لأنه يمكنك تطوير تطبيقات محسنة للواجهات الخاصة بك بدون jeopardizing الموجودة تعليمات برمجية. يمكنك إضافة ميزات جديدة في أي وقت بتطوير واجهات إضافى و تطبيقات.
هناك عدة أسباب غير ذلك لماذا قد تحتاج إلى استخدام واجهات بدلاً من وراثة فئة:
واجهات أكثر ملاءمة إلى مواقف فيه التطبيقات الخاصة بك تتطلب الكثير من الممكن التي لا أنواع الكائنات إلى توفير وظيفة معينة.
تكون أكثر مرونة من واجهات الأساس فئات حيث يمكنك تعريف تطبيق مفرد يمكنها تطبيق عدة واجهات.
واجهات أفضل في الحالات التي لم يكن إلى ترث تطبيق فئة أساسية.
واجهات مفيدة عندما لا تستخدم فئة توريث. ل مثال، لا يورث بني من الفئات، ولكن تطبيق الواجهات.
التصريح الواجهات
واجهة ملفات تعريف تحاط داخل Interfaceو End Interfaceعبارات. اتباع Interfaceالعبارة، يمكنك إضافة اختياري Inheritsكشف يسرد واحد أو المزيد ورث واجهات. Inheritsيجب أن تسبق عبارات الجميع العبارات الأخرى في إعلان ما عدا التعليقات. عبارات المتبقية في واجهة يجب تعريف Event، Sub، Function، Property، Interface، Class، Structure، و Enumعبارات. واجهات لا يحتوي على أي تطبيق التعليمات البرمجية أو عبارات كـ sociated بتنفيذ تعليمات برمجية، مثل End Subأو End Property.
في مساحة الاسم ما، تكون عبارات واجهة Friendب الافتراضي، إلا أنها يمكن أيضا أن وضوح تعريف ك Publicأو Friend. تعريف واجهات داخل clكـses، والوحدات النمطية، والواجهات، وهي بنية Publicبشكل افتراضي، إلا أنها يمكن أيضا أن وضوح تعريف كـ Public، Friend، Protected، أو Private.
ملاحظة
Shadowsيمكن أن يتم تطبيق الكلمة الأساسية إلى واجهة الجميع الأعضاء. Overloadsيمكن أن تكون الكلمة الأساسية المطبقة إلى Sub، Function، و Propertyالعبارات التي تم تعريفها في تعريف واجهة. بالإضافة إلى ذلك، Propertyيمكن أن يكون للعبارات Default، ReadOnly، أو WriteOnlyالمعدلات. بلا of the غير ذلك modifiers—Public,Private,Friend,Protected,Shared,Overrides,MustOverride, أوOverridable—are allowed. لمزيد من المعلومات، راجع سياقات الـتعريف و مستويات الوصول الافتراضية.
على سبيل المثال، ما يلي تعليمات برمجية تعريف واجهة بدالة أو خاصية واحدة وحدث واحد.
Interface IAsset
Event ComittedChange(ByVal Success As Boolean)
Property Division() As String
Function GetID() As Integer
End Interface
واجهات التطبيق
Visual Basicالكلمة المحجوزة Implementsهو المستخدمة في طرق الثاني. Implementsكشف تشير إلى أن تطبيق فئة أو بنية على الواجهة. Implementsكلمة أساسية تشير إلى أن ينفذ عضو الفئة أو عضو في بنية عضو واجهة معينة.
جملة التنفيذ
إذا كانت فئة أو بنية "بتنفيذ واحد أو أكثر الواجهات، كما يجب أن تتضمن Implementsكشف مباشرة بعد Classأو Structureالعبارة. Implementsبيان يتطلب قائمة مفصولة بفواصل من واجهات إلى يتم تطبيقها من قبل فئة. يجب أن يقوم تطبيق فئة أو بنية الجميع الأعضاء واجهة استخدام Implementsكلمة أساسية.
implements كلمة أساسية
Implementsالأساسية يتطلب قائمة مفصولة بفواصل الأعضاء الواجهة إلى تطبيق. بشكل عام، فقط على واجهة واحدة عضو هو المحدد، لكن يمكنك تحديد عدة الأعضاء. مواصفات الأعضاء واجهة يتكون من اسم الواجهة، والذي يجب أن يتم تحديد في عبارة implements داخل الفئة؛ نقطة؛ واسم دالة العضو أو الخاصية أو حدث إلى تطبيقه. يمكن استخدام اسم العضو الذي يطبق عضو واجهة أي معرّف القانونية وغير محدود إلى InterfaceName_MethodNameاصطلاح المستخدمة في الإصدارات السابقة من Visual Basic.
على سبيل المثال، ما يلي رمز يبين كيفية إلى التصريح بروتين فرعي مسمى Sub1الذي يقوم بتنفيذ أسلوب الواجهة:
Class Class1
Implements interfaceclass.interface2
Sub Sub1(ByVal i As Integer) Implements interfaceclass.interface2.Sub1
End Sub
End Class
يجب أن تتطابق مع أنواع المعلمات وأنواع الإرجاع العضو تنفيذ إعلان خاصية أو عضو واجهة في الواجهة. الطريقة الأكثر شيوعاً لتنفيذ أحد عناصر واجهة مع عضو له نفس اسم الواجهة، كما هو موضح في المثال السابق.
إلى التصريح بتنفيذ أسلوب الواجهة، يمكنك استخدام أية السمات غير قانونية تشغيل تصريحات أسلوب مثيل، بما في ذلك Overloads، Overrides، Overridable، Public، Private، Protected، Friend، Protected Friend، MustOverride، Default، و Static. Sharedسمة هو غير قانوني حيث أنه يقوم بتعريف فئة بدلاً من أسلوب مثيل عنصر.
استخدام Implements، يمكنك أيضا كتابة أسلوب مفرد يقوم بتطبيق وظائف متعددة في واجهة، كما في ما يلي مثال:
Class Class2
Implements I1, I2
Protected Sub M1() Implements I1.M1, I1.M2, I2.M3, I2.M4
End Sub
End Class
يمكنك استخدام عضو خاص إلى تنفيذ عضو واجهة. عندما يقوم عضو خاص بتطبيق عضو واجهة، يصبح ذلك العضو متوفراً بطريقة للواجهة حتى بالرغم من ذلك فإنه هو غير متوفرة مباشرة تشغيل متغيرات الكائنات للفئة.
أمثلة تطبيق واجهة
يجب أن يقوم الفئات التي تقوم بتنفيذ واجهة تطبيق الجميع خصائصه، والأساليب و أحداث.
يلي مثال تعريف واجهات الثاني. واجهة الثاني، Interface2، يرث Interface1وتقوم بتعريف خاصية إضافى و أسلوب.
Interface Interface1
Sub sub1(ByVal i As Integer)
End Interface
' Demonstrates interface inheritance.
Interface Interface2
Inherits Interface1
Sub M1(ByVal y As Integer)
ReadOnly Property Num() As Integer
End Interface
التالي مثال يطبق Interface1، الواجهة التي تم تعريفها في السابق مثال:
Public Class ImplementationClass1
Implements Interface1
Sub Sub1(ByVal i As Integer) Implements Interface1.sub1
' Insert code here to implement this method.
End Sub
End Class
نهائي مثال يطبق Interface2، بما في ذلك أسلوباً موروثة من Interface1:
Public Class ImplementationClass2
Implements Interface2
Dim INum As Integer = 0
Sub sub1(ByVal i As Integer) Implements Interface2.sub1
' Insert code here that implements this method.
End Sub
Sub M1(ByVal x As Integer) Implements Interface2.M1
' Insert code here to implement this method.
End Sub
ReadOnly Property Num() As Integer Implements Interface2.Num
Get
Num = INum
End Get
End Property
End Class
مواضيع ذات صلة
Title |
الوصف |
---|---|
يوفر الإجراءات مُفصل التي تأخذك خلال عملية تعريف و تطبيق الواجهة الخاص بك. |
|
تتناول هذه المقالة التباين المشترك و contravariance في الواجهات العامة و كما توفر قائمة الواجهات متغير عام في .NET Framework. |