كشف دالة (Visual Basic)

قم بتعريف الاسم, المعلمات والتعليمات البرمجية التي تعرّف Function الإجراء.

ملاحظة

Visual Basic 2008 يقدم تعبيرات لامدا ، والتي تتيح لك إلى تعريف تعبيرات الدالة في سطر. للمزيد من المعلومات، راجع تعبير دالة وتعبيرات لامدا.

[ <attributelist> ] [ accessmodifier ] [ proceduremodifiers ] [ Shared ] [ Shadows ] 
Function name [ (Of typeparamlist) ] [ (parameterlist) ] [ As returntype ] [ Implements implementslist | Handles eventlist ]
    [ statements ]
    [ Exit Function ]
    [ statements ]
End Function

الأجزاء

  • attributelist
    اختياري. راجع قائمة سمة.

  • accessmodifier
    اختياري. يمكن أن يكون أحد الخيارات التالية:

    انظر مستويات الوصول في Visual Basic

  • proceduremodifiers
    اختياري. يمكن أن يكون أحد الخيارات التالية:

  • Shared
    اختياري. راجع ‏مشترك‬.

  • Shadows
    اختياري. راجع الظلال.

  • name
    مطلوبة. اسم الاجراء. انظر أسماء العنصر المعرف

  • typeparamlist
    اختياري. قائمة معلمات النوع لإجراء عام. راجع قائمة النوع.

  • parameterlist
    اختياري. قائمة أسماء المتغيرات المحلية يمثل معلمات هذا إجراء. انظر قائمة المعلمة

  • returntype
    مطلوب إذا كان Option Strict هو On. نوع بيانات القيمة التي تم إرجاعها بواسطة هذا إجراء.

  • Implements
    اختياري. يشير إلى أن هذا إجراء يقوم بتطبيق واحد أو أكثر من Function الإجراءات, كل واحد معرّف في واجهة تم تطبيقها بواسطة الفئة المحتوية لهذا الإجراء التي أو البنية. انظر جملة التنفيذ

  • implementslist
    مطلوب إذا كان Implements يتم توفيره. قائمة منFunction الإجراءات التي يتم تطبيقها.

    implementedprocedure [ , implementedprocedure ... ]

    كل implementedprocedure يحتوي على بناء الجملة والأجزاء التالية:

    interface.definedname

    جزء

    الوصف

    interface

    مطلوبة. اسم واجهة تم تطبيقها بواسطة الفئة المحتوية لهذا الإجراء أو البنية.

    definedname

    مطلوبة. اسم حيث يتم تعريف الإجراء في interface.

  • Handles
    اختياري. يشير إلى أن هذا إجراء يمكنه معالجة حدث معينة أو أكثر. انظر عبارة المؤشرات (Visual Basic)

  • eventlist
    مطلوب إذا كان Handles يتم توفيره. قائمة الأحداث التي يعالجها هذا الإجراء.

    eventspecifier [ , eventspecifier ... ]

    كل eventspecifier يحتوي على بناء الجملة والأجزاء التالية:

    eventvariable.event

    جزء

    الوصف

    eventvariable

    مطلوبة. متغير الكائن المعرف مع نوع البيانات لفئة أو بنية التي ترفع الحدث.

    event

    مطلوبة. اسم الحدث الذي يعالجه هذا الإجراء.

  • statements
    اختياري. مقاطع من الكشوف ليتم تنفيذها داخل هذا الإجراء.

  • EndFunction
    ينهي تعريف هذا الإجراء.

ملاحظات

يجب أن تكون كل التعليمات البرمجية القابلة للتنفيذ داخل إجراء. يتم تعريف كل إجراء بدوره داخل فئة أو بنية أو وحدة نمطية و التي تسمى بـالفئة الحاوية أو البنية أو وحدة نمطية.

استخدم إجراء Function عندما تريد إرجاع قيمة إلى التعليمات البرمجية المستدعية. استخدم إجراء Sub عندما لا تحتاج إلى إرجاع قيمة.

يمكنك تعريف إجراء Function فقط على المستوى وحدة نمطية. وهذا يعني تعريف السياق لدالة يجب أن يكون فئة، بنية، وحدة نمطية، أو واجهة و لا يمكن أن يكون ملف المصدر، مساحة الاسم،إجراء أو مقطع . لمزيد من المعلومات، راجع سياقات الـتعريف و مستويات الوصول الافتراضية.

Function الإجراءات تقتصر على الوصول العام. يمكنك ضبط مستويات الوصول الخاصة بهم بمعدلات الوصول.

يمكنك استدعاء إجراء Function على الجانب الأيسر من تعبير عندما تريد استخدام القيمة التي تم إرجاعها بواسطة الدالة. استخدم إجراء Function بنفس الطريقة التي تستخدم فيها أي دالة مكتبة مثل Sqrt, Cos، أو ChrW.

استدعاء إجراء Function باستخدام اسم الإجراء, متبوعاً بقائمة الوسائط في أقواس في تعبير. يمكنك حذف الأقواس فقط إذا لم يتم توفير أية وسائط. على الرغم من ذلك، التعليمات البرمجية قابلة للقراءة أكثر إذا قمت دائماً بإضافة الأقواس.

يمكن استدعاء دالة أيضاً باستخدام كشف Call , في حالة تجاهل قيمة الارجاع.

القواعد

  • نوع الإرجاعكشف الـ Function يمكن أن يعرف نوع البيانات للقيمة التي يرجعها. يمكنك تحديد أي نوع بيانات أو اسم لقائمة تعداد ، فئة، بنية أو واجهة.

    إذا لم تعين ‎returntype, يرجع الاجراء Object

  • التنفيذ. إذا كانت هذا الاجراء يستخدم الكلمة الأساسية Implements ,يجب أن تملك الفئة الحاوية أو البنية أيضا على كشف Implements التي تلي مباشرة Class أو Structure الكشف الخاص به. عبارة الـ Implements يجب أن يضم كل واجهة محددة في implementslist. ومع ذلك، الاسم الذي تعرّفه الواجهة Function (في definedname) لا يحتاج أن يكون نفس اسم هذا الإجراء (في name).

السلوك

  • الخروج من إجراء. عندما يرجع إجراء Function إلى التعليمات البرمجية المستدعية، يستمر التنفيذ مع الكشف الذي يلي الكشف الذي استدعاه.

    عبارات Exit Function و Return تسبب خروج فوري من إجراء Function. أي عدد من عبارات Exit Function و Return يمكن أن تظهر أي مكان في الإجراء، كما يمكن خلط عبارات Exit Function و Return .

  • قيمة الإرجاع. لإرجاع قيمة من دالة, يمكنك إما تعيين القيمة إلى اسم الدالة أو تضمينها في Return الكشف. يعين المثال التالي القيمة المرجعة لاسم دالةmyFunction ثم يستخدم كشف Exit Function للرجوع.

    Function myFunction(ByVal j As Integer) As Double
        myFunction = 3.87 * j
        Exit Function
    End Function
    

    إذا كنت تستخدم Exit Function بدون تعيين قيمة إلى name، يقوم الإجراء بإرجاع القيمة الافتراضية لـ نوع البيانات المحدده في returntype . اذا لم يتم تحديد returntype , يقوم الإجراء بإرجاع Nothing، القيمة الافتراضية لـ Object.

    كشف الـ Return يعيّن قيمة الإرجاع و يخرج من الدالة في نفس الوقت. يـوضح المثال التالي ذلك.

    Function myFunction(ByVal j As Integer) As Double
        Return 3.87 * j
    End Function
    

استكشاف الأخطاء وإصلاحها

  • ترتيب التنفيذ. يعيد ترتيب Visual Basic أحياناً التعبيرات الرياضية لزيادة الكفاءة الداخلية. لهذا السبب، تجنب استخدام إجراء Function في تعبير حسابي عندما تغير دالة قيمة المتغيرات في التعبير نفسه.

مثال

يستخدم المثال التالي كشف Function لتعريف الاسم, المعلمات، و التعليمات البرمجية التي تشكل جسد إجراء Function . معدّل الـ ParamArray يمكّن الدالة من قبول عدد متغير من الوسائط..

Public Function calcSum(ByVal ParamArray args() As Double) As Double
    calcSum = 0
    If args.Length <= 0 Then Exit Function
    For i As Integer = 0 To UBound(args, 1)
        calcSum += args(i)
    Next i
End Function

يستدعي المثال التالي دالة تم تعريفها في المثال السابق.

Module Module1

    Sub Main()
        ' In the following function call, calcSum's local variables 
        ' are assigned the following values: args(0) = 4, args(1) = 3, 
        ' and so on. The displayed sum is 10.
        Dim returnedValue As Double = calcSum(4, 3, 2, 1)
        Console.WriteLine("Sum: " & returnedValue)
        ' Parameter args accepts zero or more arguments. The sum 
        ' displayed by the following statements is 0.
        returnedValue = calcSum()
        Console.WriteLine("Sum: " & returnedValue)
    End Sub

    Public Function calcSum(ByVal ParamArray args() As Double) As Double
        calcSum = 0
        If args.Length <= 0 Then Exit Function
        For i As Integer = 0 To UBound(args, 1)
            calcSum += args(i)
        Next i
    End Function

End Module

راجع أيضًا:

المهام

كيفية القيام بما يلي: استخدام فئة عامة

إجراءات استكشاف الأخطاء وإصلاحها

المرجع

عبارة Vsual Basic) Sub)

قائمة المعلمة

عبارة Vsual Basic) Dim)

عبارة استدعاء (Vsual Basic)

من عبارة (Visual Basic)

تعبير دالة

المبادئ

صفائف المعلمة.

تعبيرات لامدا