ما هي إيجابيات وسلبيات إجراءات الاتصال في VB.NET؟

StackOverflow https://stackoverflow.com/questions/1848086

  •  13-09-2019
  •  | 
  •  

سؤال

أود أن أعرف إيجابيات وسلبيات إجراءات الاتصال مع الكلمة الأساسية للاتصال وبدون مكالمة في VB.NET؟

Private Sub ProOne()
     ' Code Are Here
End Sub

Private Sub Calling()
   ProOne()           ' I would like to know pros and cons of this
   Call ProOne()      ' And I would like to know pros and cons of this
End Sub

شكرا مقدما جميعا.

هل كانت مفيدة؟

المحلول

من هنا:

يمكنك عادة استخدام عبارة الاتصال لاستدعاء الإجراء الذي لا يرجع قيمة. إذا إرجاع الإجراء قيمة، فإن عبارة "الاتصال" يتجاهلها.

لا يلزم منك استخدام عبارة الاتصال عند استدعاء إجراء. ومع ذلك، فإنه يحسن قراءة التعليمات البرمجية الخاصة بك.

لذلك، في جوهرها، Prouns () و Call Proone () تعادل دلوي.

نصائح أخرى

لا توجد إيجابيات، ولا توجد سلبيات.

الكلمة الأساسية للمكالمات هي كلمة رئيسية إرث من لهجات VB القديمة.

في VB.NET ليس له معنى، وهو سكر متسمم.

استخدام واحد مثير للاهتمام وجدت (ص # اقترح)، كان عندما تحتاج إلى إنشاء مثيل فقط لاستدعاء طريقة واحدة ثم قم بتمييزها عن جمع القمامة.
لست متأكدا مما إذا كنت أبقيها رغم ذلك.

علي سبيل المثال

Call (new MyType()).MySub()

أي ما يعادل

dim anInstance = new MyType
anInstance.MySub

على الرغم من أنها معادلة تقنيا، إلا أنني سأجادل ضد استخدام "الاتصال". عند الانتقال من VB6 إلى VB.NET، من المهم أن تكون حقيقية لأنها لغات مختلفة تماما يجب أن تكون مكتوبة بطرق مختلفة تماما. لسوء الحظ، أرادت Microsoft تقديم الدعم لمطوري VB6، وقدموا ذلك عن طريق إضافة وظيفة تقليد وظيفة VB6، ولكنها أقل شأنا بشكل سياسي من ما يعادل .NET .NET.

قطع جميع العلاقات مع أي من Holdovers VB6، ستجعل المطورين يتوقفون عن استخدام هذه البتات في أسرع وقت ممكن، ويؤدي إلى إخراج رمز أفضل.

من الوثائق

التحويلات التي تتحكم في إجراء مكتبة وظيفة أو فرعية أو رابط ديناميكية (DLL). [استدعاء] الاسم الداخلي [(حجة القائمة)

وبالتالي،

يمكنك عادة استخدام عبارة الاتصال لاستدعاء الإجراء الذي لا يرجع قيمة. إذا إرجاع الإجراء قيمة، فإن عبارة "الاتصال" يتجاهلها.

لا يلزم منك استخدام عبارة الاتصال عند استدعاء إجراء. ومع ذلك، فإنه يحسن قراءة التعليمات البرمجية الخاصة بك.

لا يزال بيان المكالمة له أهمية، حتى في عام 2019: "يمكنك عادة استخدام الكلمة الأساسية للمكالمات عندما لا يبدأ التعبير المسمى مع معرف. لا ينصح باستخدام الكلمة الرئيسية للمكالمات للاستخدامات الأخرى."

بيان الاتصال (Visual Basic)

نموذج رمز MSDN:

Sub TestCall()
    Call (Sub() Console.Write("Hello"))()

    Call New TheClass().ShowText()
End Sub

Class TheClass
    Public Sub ShowText()
        Console.Write(" World")
    End Sub
End Class
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top