الواجهات

الواجهات تعريف خصائص، الأساليب والأحداث التي يمكن تطبيق الفئات. واجهات تسمح لك بتحديد الميزات كمجموعات صغيرة من الخصائص ذات الصلة بشكل كبير وأساليب وأحداث؛ وهذا يقلل من مشاكل توافق لأنه يمكنك تطوير تطبيقات محسنة للواجهات الخاصة بك بدون 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

الوصف

الإرشادات التفصيلية: إنشاء و تنفيذ الواجهات

يوفر الإجراءات مُفصل التي تأخذك خلال عملية تعريف و تطبيق الواجهة الخاص بك.

الالفرق في الواجهات العامة (C# و Visual Basic)

تتناول هذه المقالة التباين المشترك و contravariance في الواجهات العامة و كما توفر قائمة الواجهات متغير عام في .NET Framework.