عبارة Vsual Basic) Sub)
قم بتعريف الاسم, المعلمات والتعليمات البرمجية التي تعرّف Sub الإجراء.
[ <attributelist> ] [ Partial ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ]
Sub name [ (Of typeparamlist) ] [ (parameterlist) ] [ Implements implementslist | Handles eventlist ]
[ statements ]
[ Exit Sub ]
[ statements ]
End Sub
الأجزاء
attributelist
اختياري. راجع قائمة سمة.Partial
اختياري. الإشارة إلى تعريف أسلوب الجزئية. انظر أساليب جزئيةaccessmodifier
اختياري. يمكن أن يكون أحد الخيارات التالية:proceduremodifiers
اختياري. يمكن أن يكون أحد الخيارات التالية:MustOverride Overrides
NotOverridable Overrides
Shared
اختياري. راجع مشترك.Shadows
اختياري. راجع الظلال.name
مطلوبة. اسم الاجراء. انظر أسماء العنصر المعرف لإنشاء إجراء مُنشئ فئة, تعيين اسم إجراء Sub للكلمة أساسية New. لمزيد من المعلومات، راجع مدة بقاء الكائن: كيفية إنشاء و إتلاف الكائنات.typeparamlist
اختياري. قائمة معلمات النوع لإجراء عام. راجع قائمة النوع.parameterlist
اختياري. قائمة أسماء المتغيرات المحلية يمثل معلمات هذا إجراء. انظر قائمة المعلمةImplements
اختياري. يشير إلى أن هذا إجراء يقوم بتطبيق واحد أو أكثر من Sub الإجراءات, كل واحد معرّف في واجهة تم تطبيقها بواسطة الفئة المحتوية لهذا الإجراء التي أو البنية. انظر جملة التنفيذimplementslist
مطلوب إذا كان Implements يتم توفيره. قائمة منSub الإجراءات التي يتم تطبيقها.implementedprocedure [ , implementedprocedure ... ]
كل implementedprocedure يحتوي على بناء الجملة والأجزاء التالية:
interface.definedname
جزء
الوصف
interface
مطلوبة. اسم واجهة تم تطبيقها بواسطة الفئة المحتوية لهذا الإجراء أو البنية.
definedname
مطلوبة. اسم حيث يتم تعريف الإجراء في interface.
Handles
اختياري. يشير إلى أن هذا إجراء يمكنه معالجة حدث معينة أو أكثر. انظر عبارة المؤشرات (Visual Basic)eventlist
مطلوب إذا كان Handles يتم توفيره. قائمة الأحداث التي يعالجها هذا الإجراء.eventspecifier [ , eventspecifier ... ]
كل eventspecifier يحتوي على بناء الجملة والأجزاء التالية:
eventvariable.event
جزء
الوصف
eventvariable
مطلوبة. متغير الكائن المعرف مع نوع البيانات لفئة أو بنية التي ترفع الحدث.
event
مطلوبة. اسم الحدث الذي يعالجه هذا الإجراء.
statements
اختياري. مقطع من العبارات لتنفذ داخل هذا الإجراء .EndSub
ينهي تعريف هذا الإجراء.
ملاحظات
يجب أن تكون كل التعليمات البرمجية القابلة للتنفيذ داخل إجراء. استخدم إجراء Sub عندما لا تريد إرجاع قيمة إلى التعليمات البرمجية المستدعية. استخدام إجراء Function عند الحاجة إلى إرجاع قيمة.
يمكنك استخدام Sub فقط عند مستوى الوحدة النمطية. وهذا يعني تعريف السياق لإجراء فرعي يجب أن يكون فئة، بنية، وحدة نمطية، واجهة و لا يمكن أن يكون ملف المصدر، مساحة الاسم، أو إجراء أو مقطع. لمزيد من المعلومات، راجع سياقات الـتعريف و مستويات الوصول الافتراضية.
Sub الإجراءات تقتصر على الوصول العام. يمكنك ضبط مستويات الوصول الخاصة بهم بمعدلات الوصول.
القواعد
- التنفيذ. إذا كانت هذا الإجراء يستخدم الكلمة الأساسية Implements , يجب أن تملك الفئة الحاوية أو البنية على عبارة Implements التي تلي مباشرة العبارة Class أو Structure الخاص به. عبارة الـ Implements يجب أن يضم كل واجهة محددة في implementslist. ومع ذلك، الاسم الذي تعرّفه الواجهة Sub (في definedname) لا يحتاج أن يكون نفس اسم هذا الإجراء (في name).
السلوك
الخروج من إجراء. عندما يرجع إجراء Sub إلى التعليمات البرمجية المستدعية، يستمر التنفيذ مع الكشف الذي يلي الكشف الذي استدعاه.
عبارات Exit Sub و Return تسبب خروج فوري من إجراء Sub. أي عدد من عبارات Exit Sub و Return يمكن أن تظهر أي مكان في الإجراء، كما يمكن خلط عبارات Exit Sub و Return .
يظهر المثال التالي عائد من إجراء Sub .
Sub mySub(ByVal q As String) Return End Sub
استدعاء إجراء الإجراء Sub , مثل إجراء Function هو إجراء منفصل يمكنه أخذ معلمات وتنفيذ سلسلة من العبارات عليها. ومع ذلك، بخلاف إجراء Function، الذي يرجع قيمة، إجراء Sub لا يمكن استخدام في التعبير.
استدعاء إجراء Sub باستخدام اسم الإجراء, متبوعاً بقائمة الوسائط في أقواس في عبارة. يمكنك حذف الأقواس فقط إذا لم يتم توفير أية وسائط. على الرغم من ذلك، التعليمات البرمجية قابلة للقراءة أكثر إذا قمت دائماً بإضافة الأقواس.
بشكل اختياري يمكنك استخدام عبارة Call لاستدعاء إجراء Sub. هذا يؤدي إلى تحسين قراءة التعليمات البرمجية الخاص بك.
استكشاف الأخطاء وإصلاحها
ترتيب التنفيذ. يعيد ترتيب Visual Basic أحياناً التعبيرات الرياضية لزيادة الكفاءة الداخلية. لهذا السبب، إذا كانت قائمة الوسيطة الخاصة بك تتضمن تعبيرات تستدعي إجراءات أخرى، لا يمكن الاعتماد عليها لتستدعى بأي ترتيب معين.
مثال
يستخدم المثال التالي عبارة Sub لتعريف الاسم, المعلمات، و التعليمات البرمجية التي تشكل جسد إجراء Sub .
Sub computeArea(ByVal length As Double, ByVal width As Double)
' Declare local variable.
Dim area As Double
If length = 0 Or width = 0 Then
' If either argument = 0 then exit Sub immediately.
Exit Sub
End If
' Calculate area of rectangle.
area = length * width
' Print area to Immediate window.
Debug.WriteLine(area)
End Sub
راجع أيضًا:
المهام
كيفية القيام بما يلي: استخدام فئة عامة
إجراءات استكشاف الأخطاء وإصلاحها
كيفية القيام بما يلي: إنشاء أسلوب جزئي (Visual Basic)