إعادة بناء التعليمات البرمجية لاستخراج أسلوب (C#)

استخراج أسلوب هي عملية إعادة بناء التعليمات البرمجية التي توفر طريقة سهلة لإنشاء أسلوب جديد من جزء من التعليمات برمجية في عضو موجود.

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

استخراج أسلوب يحتوي على الفوائد التالية:

  • يشجّع أفضل الممارسات بواسطة تمييز الأساليب المنفصلة ،و القابلة لإعادة الاستخدام.

  • يشجّع التوثيق الذاتي عن طريق التنظيم الجيد.

    عندما يتم استخدام الأسماء الوصفية، يمكنك قراءة الأساليب ذات المستوى العالي مثل سلسلة من التعليقات.

  • يشجّع إنشاء أساليب ذات نواة أفضل لتبسيط التجاوز.

  • يقلل تكرار التعليمات البرمجية.

لاستخدام "استخراج أسلوب"

  1. أنشئ تطبيق وحدة تحكم باسم ExtractMethod ، ثم قم باستبدال Program بمثال التعليمات البرمجية التالي

    class A
    {
        const double PI = 3.141592;
    
        double CalculatePaintNeeded(double paintPerUnit, double radius)
        {
            // Select any of the following:
            // 1. The entire next line of code.
            // 2. The right-hand side of the next line of code.
            // 3. Just "PI *" of the right-hand side of the next line
            //    of code (to see the prompt for selection expansion).
            // 4.  All code within the method body.
            // ...Then invoke Extract Method.
    
            double area = PI * radius * radius;
    
            return area / paintPerUnit;
        }
    }
    
  2. حدد جزء التعليمات البرمجية التي تريد استخراجه:

    double area = PI * radius * radius.
    
  3. من القائمة إعادة بناء التعليمات البرمجية ، انقر فوق استخراج أسلوب .

    يظهر مربع الحوار استخراج أسلوب.

    بدلاً من ذلك، يمكنك أيضاً كتابة اختصار لوحة المفاتيح CTRL + R ثم M لعرض مربع الحوار استخراج أسلوب.

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

  4. حدد اسمًا للأسلوب الجديد, مثل CircleArea ، في المربع اسم الأسلوب الجديد.

    يظهر عرض لتوقيع الأسلوب الجديد تحت معاينة توقيع الأسلوب .

  5. انقر فوق موافق.

ملاحظات

عند استخدام الأمر استخراج أسلوب يتم إدراج الأسلوب الجديد تاليًا للعضو المصدر في نفس الفئة.

الأنواع الجزئية

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

معلمات النوع العام

عند استخراج أسلوب يحتوي على معامل نوع عام غير مقيّد ، التعليمات البرمجية المنشأة ان تضيف المعدَّل ref إلى ذلك المعامل إلا إذا تم تعيين قيمة له. إذا كان الأسلوب المستخرج سوف يعتمد أنواع مرجع كوسيطة نوع عام , فيجب عليك إضافة المعدِّل ref يدوياً إلى المعامل في توقيع الأسلوب.

الأساليب المجهولة

إذا حاولت استخراج جزء من أسلوب مجهول يتضمن مرجعاً إلى متغير محلي تم تعريفه أو الإشارة إليه من خارج الأسلوب المجهول, سيحذرك Visual Studio من التغييرات الدلالية المحتملة.

عندما يستخدم أسلوب مجهول القيمة لمتغير محلي, يتم الحصول علي القيمة في لحظة تنفيذ الأسلوب المجهول. عندما يتم استخراج أسلوب مجهول إلى أسلوب آخر, يتم الحصول على قيمة المتغير المحلي في هذه اللحظة من الاستدعاء للأسلوب المستخرج.

يوضح المثال التالي هذا التغيير الدلالي. إذا تم تنفيذ هذه التعليمات البرمجية, سيتم طباعة 11 في وحدة التحكم. إذا كنت تستخدم استخراج أسلوب لاستخراج المنطقة من التعليمات البرمجية التي تم تمييزها بتعليقات التعليمات البرمجية إلى الأسلوب الخاص بها ثم تنفيذ التعليمات البرمجية المعاد هيكلتها , سيتم طباعة 10 في وحدة التحكم.

class Program
{
    delegate void D();
    D d;
    static void Main(string[] args)
    {
        Program p = new Program();
        int i = 10;
        /*begin extraction*/
            p.d = delegate { Console.WriteLine(i++); };
        /*end extraction*/
        i++;
        p.d();
    }
}

للتغلب على هذا الموقف ، تأكد من جعل المتغيرات المحلية التي تُستخدَم في الأسلوب المجهول حقولًا في الفئة.

راجع أيضًا:

المبادئ

إعادة بناء التعليمات البرمجية (C#)