مشاركة عبر


الإرشادات التفصيلية: تأليف مكوّن باستخدام #Visual C

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

بنية الإجراءات التالية تشغيل بعضها البعض، حتى يكون الترتيب الذي يتم فيه تنفيذ هذه المهمة.

ملاحظة

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

إنشاء المشروع

لإنشاء مكتبة الفئات CDemoLib والمكون CDemo

  1. تحديد من قائمة ملف جديد وثم مشروع إلى فتح مربع حوار مشروع جديد. تحديد القالب مشروع مكتبة فئة من القائمة #Visual Cمشروع، أنواع و Enter الزر الزر CDemoLib في المربع الاسم.

    ملاحظة

    دائماً قم بتحديد اسم المشروع الجديد متى قمت بإنشاءه. سيؤدي تعيين مساحة الاسم الجذر، اسم التجميع، و اسم مشروع، و أيضا يؤكد أنه سيتم مكوّن الافتراضي في مساحة الاسم الصحيح.

  2. من مستكشف الحلول، انقر نقراً مزدوجاً فوق من CDemoLib وحدد خصائص من قائمة مختصرة. و لاحظ أن الصندوق مساحة الاسم الإفتراضية تتضمن CDemoLib.

    مساحة الاسم الجذر هو مستخدمة لتأهيل أسماء المكونات في تجميع. على سبيل المثال، إذا توفر تجميعات الثاني مكوّن s باسم CDemo، يمكنك تحديد جهاز CDemoمكوّن استخدام CDemoLib.CDemo.

    إغلاق صندوق حوار.

  3. من قائمة مشروع ، اختر إضافة مكوّن .

  4. في صندوق الحوار إضافة عنصر جديد? ، تحديد فئة مكوّن و نوع CDemo.cs في المربع الاسم. انقر فوق إضافة إلى إنشاء مكوّن.

    مكون باسم CDemoهو إضافة إلى مكتبة الفئات الخاص بك.

  5. في مستكشف الحل، يمين-انقر فوق من CDemo.cs واختيار عرض تعليمات برمجية من قائمة المختصرة. فتح محرر تعليمات برمجية.

    ملاحظة من : Componentفور public partial class CDemo. هذا مقطع تعيين فئة التي ترث الفئة الخاص بك. بشكل افتراضي مكوّن يرث من Componentفئة الموفر من قبل النظام. Componentفئة يوفر الكثير من الميزات لجهاز مكوّن، بما في ذلك القدرة على استخدام مصممي.

  6. من مستكشف الحل، انقر نقراً مزدوجاً فوق Class1.cs واختيار يحذف. Th هو قم بحذف القيمة الافتراضية للفئات التي هو المتوفرة مع مكتبة الفئات، كما أنه لن يستخدم في ترتيب هو معاينة.

  7. من قائمة ملف ، اختيار حفظ الكل إلى حفظ مشروع.

إضافة المنشئات و Destructors

التحكم في الطريقة المنشئات مكوّن الخاص بك هو تهيئة; Finalizeأسلوب التحكم في الطريقة التي tears إلى أسفل. تعليمات برمجية في الدالة الإنشائية و Finalizeأسلوب CDemoالفئة يحتفظ حساباً قيد تشغيل للعدد CDemoالكائنات في وجود.

لإضافة تعليمة برمجية المنشئ و destructor من CDemo فئة

  1. في محرر تعليمات برمجية، إضافة متغيرات خاصة بالأعضاء للاحتفاظ قيد تشغيل الإجمالي لمثيلات CDemoالفئة، ورقم المعرف لكل مثيل.

    public readonly int InstanceID;
    private static int NextInstanceID = 0;
    private static long ClassInstanceCount = 0;
    

    لأن InstanceCountو NextInstanceIDيتم تعريف متغيرات خاصة بالأعضاء static، كانت موجودة فقط في فئة المستوى. الجميع مثيلات CDemoالتي بالوصول إلى هذه الأعضاء استخدام نفس ذاكرة المواقع. يكون الأعضاء ثابتة تهيئة لأول مرة CDemoتتم الإشارة إلى الفئة في تعليمات برمجية. قد يكون هذا أول الوقت CDemoتاريخ الإنشاء الكائن، أو أول الوصول إلى مرة واحدة من الأعضاء ثابتة.

  2. حدد موقع public CDemo()و public CDemo(IContainer container)، المنشئات الافتراضية CDemoفئة. في #Visual C، تحتوي جميع الدوال الإنشائية نفس اسم الفئة. يمكن أن يكون لديك مكون المنشئات متعددة، مع معلمات مختلفة, ولكن يجب أن الجميع يكون لها نفس الاسم كـ مكوّن الخاص بك.

    ملاحظة

    يحدد مستوى الوصول للدوال الإنشائية أي عملاء سيمكنهم إنشاء مثيلات للفئة.

  3. إضافة التعليمة البرمجية التالية إلى public CDemo()، لزيادة عدد مثيل عند جديد CDemoتاريخ الإنشاء، وتعيين رقم المعرف المثيل.

    ملاحظة

    دائماً بإضافة تعليمات برمجية بعد الاستدعاء InitializeComponent. عند التي يؤشر، تتم تهيئة أي مكون من مكونات constituent.

    InstanceID = NextInstanceID ++;
    ClassInstanceCount ++;
    

    readonly الأعضاء، InstanceIDيمكن تعيينها فقط في الدالة الإنشائية.

    ملاحظة

    المستخدمين معتاداً متعدد العمليات سيتم الإشارة بالضبط rightly ذلك تعيين InstanceIDو تزايد NextInstanceIDيجب أن تكون على تشغيل بسيط. هذا والمشاكل الأخرى المتعلقة إلى ترابط يتم توضيح في الإرشادات التفصيلية: تأليف مكون متعددة مؤشرات ترابط بسيطة مع Visual C#‎.

  4. إضافة الطريقة التالية بعد إنهاء المنشئ:

    ~CDemo()
    {
       ClassInstanceCount --;
    }
    

    Th هو أسلوب هو يطلق على destructor ، و هو يرمز الحرف التلدة (~) أمام اسم الفئة. إدارة ذاكرة باستدعاء destructor من قبل ذلك وأخيراً reclaims ذاكرة مشغولة بواسطة CDemoكائن. بواسطة تطبيق destructor يمكنك إجراء التنظيف قبل مكوّن الخاص بك مباشرة هو إزالته من ذاكرة. على الرغم من ذلك، كما سترى لاحقاً في هذه معاينة، هناك أسباب بضاعة إلى حرر موارد سابقا.

إضافة خاصية إلى فئة

CDemoفئة تحتوي على خاصية واحدة فقط، وخاصية ثابتة التي تسمح للعميل إلى معرفة عدد CDemoالكائنات في ذاكرة في الوقت المحدد. يمكن تاريخ الإنشاء وظائف في بطريقة مماثلة.

إلى إنشاء خاصية لفئة CDemo

  • إضافة إعلان الخصائص التالية ل CDemoفصل دراسي، للسماح لعملاء استرداد عدد مثيلات CDemo.

    public static long InstanceCount
       {
          get
          {
             return ClassInstanceCount;
          }
       }
    

اختبار مكوّن

اختبار مكوّن، تحتاج إلى مشروع التي تستخدمه. يجب أن يكون هذا مشروع مشروع أول الذي يبدأ تشغيله عند الضغط على زر التشغيل.

إلى إضافة مشروع العميل CDemoTest كمشروع بدء التشغيل للحل

  1. من قائمة ملف ، أشر إلى إضافة و اختيار مشروع جديد لفتح صندوق الحوار إضافة مشروع جديد.

  2. تحديد تطبيق Windows مشروع القالب، اكتب CDemoTest في المربع الاسم وثم انقر فوق ‏‏موافق .

  3. من مستكشف الحلول، انقر نقراً مزدوجاً فوق من CDemoTest وانقر فوق تعيين كبدء تشغيل مشروع من قائمة مختصرة.

لكي تتمكن من استخدم CDemoمكوّن، يجب أن يكون مشروع اختبار العميل مرجع إلى مشروع مكتبة الفئات. بعد إضافة المرجع، فإنه هو فكرة بضاعة لإضافة usingعبارة لتطبيق الاختبار لتبسيط الاستخدام للمكون.

لإضافة مرجع إلى مشروع مكتبة الفئات

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

  2. في مربع حوار إضافة مرجع ، حدد علامة التبويب مشاريع .

  3. انقر مزدوجاً فوق مشروع مكتبة الفئات CDemoLib. CDemoLib سيظهر ضمن عقدة مراجع للمشروع CDemoTest.

  4. في من مستكشف الحل، انقر نقراً مزدوجاً فوق من Form1.cs و حدد عرض تعليمات برمجية من قائمة المختصرة.

إضافة المرجع إلى CDemoLibيسمح لك ب استخدم اسم مؤهل بشكل كامل CDemoمكوّن — وهي CDemoLib.CDemo.

إلى إضافة استخدام العبارة

  • إضافة usingالعبارة إلى القائمة التالية usingعبارات أعلى محرر تعليمات برمجية Form1.

    using CDemoLib;
    

    إضافة usingعبارة يسمح لك بحذف اسم المكتبة، و تشير إلى نوع مكوّن ك CDemo.

    الآن سيتم إنشاؤه واستخدامه برنامج اختبار إلى اختبار مكوّن الخاص بك.

كائن استيعاب مدة بقاء

CDemoTestسيقوم البرنامج بتوضيح مدة حياة الكائن في إطار عمل.NET بإنشاء و تحرير إعداد كبيرة من CDemoالكائنات.

لإضافة تعليمات برمجية لإنشاء وتحرير الكائنات CDemo

  1. انقر فوق Form1.cs[تصميم للعودة إلى مصمم.

  2. قم بسحب Buttonو Timerمن التبويب كل Windows Forms من مربع أدوات التحكم إلى Form1سطح التصميم.

    nonvisual Timerمكوّن يظهر تشغيل سطح تصميم منفصلة أسفل النموذج.

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

    this.Text = "CDemo instances: " + CDemo.InstanceCount;
    

    يعرض العدد المثيل الحالي ل CDemoفئة. تشغيل التجزئة كل جهاز، تسمية توضيحية للنموذج اسم الفئة هو تستخدم كمؤهل ما ثابتة InstanceCountخاصية — هو لست بحاجة إلى إنشاء مثيل ل CDemoللوصول إلى عضو ثابت.

  4. حدد موقع construcإلىr ل Form1(public Form1()) ، وقم بإضافة التعليمة البرمجية التالية بعد إلى استدعاء InitializeComponent().

    timer1.Enabled = true;
    

    Th هو يبدأ تشغيل عداد الوقت مجرد النموذج هو التي تم إنشاؤها.

  5. انقر فوق علامة تبويب Form1.cs [تصميم للرجوع إلى المصمم.

  6. انقر نقراً مزدوجاً Buttonتشغيل Form1، لإنشاء أسلوب معالجة حدث زر's Clickحدث. قم بوضع التعليمة البرمجية التالية في أسلوب معالجة حدث.

    CDemo cd;
    int ct;
    for (ct = 0; ct < 1000; ct++)
       cd = new CDemo();
    

    وهذا تعليمات برمجية قد يبدو غريبا لك. كـ كل مثيل ل CDemoتم إنشاؤها، المثيل السابق هو releكـed. عند forتكرار حلقي هو، يكون هناك مثيل واحد فقط من CDemoاليسار. عندما يتم إنهاء طريقة معالجة حدث، لذلك المثيل حتى سيتم إصدار، لأن المتغير cdسيدخل خارج نطاق.

    كما كنت قد يكون تخمينها مسبقاً، لن تحدث الأمور بهذه الطريقة بالضبط.

إلى تشغيل وتصحيح مشاريع CDemoTest و CDemo

  1. F5 اضغط إلى تشغيل الحل.

    سيتم يبدأ مشروع العميل، و Form1سيعرض. لاحظ أنه تسمية توضيحية النموذج يعرض "مثيلات CDemo: 0".

  2. انقر على الزر . تسمية توضيحية يجب أن يعرض النموذج "مثيلات CDemo: 1000".

    المثيلات CDemoتم الجميع إصدارها بواسطة الوقت على زر Clickالانتهاء من إجراء معالجة حدث. لماذا لم يتم تم إنهاؤه؟ وفي مختصرة، ذاكرة المدير finalizes الكائنات في الخلفية، أفضلية منخفضة. الأولوية هو bumped فقط إذا حصل النظام تشغيل نقص في ذاكرة لدى Word. البطيئة البيانات المهملة مجموعة نظام هذا يسمح بتخصيص الكائن سريعة جداً.

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

    ملاحظة

    إذا نقرت المزيد 10 مرة/مرات، و رقم CDemoقد لا يقل المثيلات، قد تحتاج إلى تعديل تعليمات برمجية بحيث يستخدم المزيد ذاكرة. يغلق النموذج للعودة إلى بيئة التطوير، و زيادة عدد مرات التكرار في forتكرار حلقي إلى 10000. قم بتشغيل مشروع مرة أخرى.

  4. كرر الخطوة 3. سوف تحصل على أبعد هذه المرة قبل ذاكرة المدير finalizes كائنات أكثر.

    في الحقيقة، كرر الخطوة 3 في كل مرة، فمن المحتمل أن سيكون بإمكانك إلى يخصص أكثر CDemoالكائنات قبل بوصة الخطوات التالية لإدارة ذاكرة Th هو هو لأن المزيد والمزيد من Vهوual Studio هو تبديل، مع ترك مسافة أكبر لمثيلات CDemo.

  5. يغلق النموذج للعودة إلى بيئة التطوير.

راجع أيضًا:

موارد أخرى

برمجة مع مكونات

المواضيع الإرشادية للكتابة مكوّن