الإرشادات التفصيلية: تطبيق توريث مع كائنات COM

يمكنك اشتقاق فئات Visual Basic من فئات Public في كائنات COM, حتى تلك التي تم إنشاؤها في إصدارات سابقة من Visual Basic. خصائص وأساليب فئات الموروثة من كائنات COM يمكن تجاوزها أو تحميلها فوق طاقتها كخصائص وأساليب أي فئة أساسية أخرى يمكن تجاوزها أو تحميلها فوق طاقتها. التوريث من كائنات COM مفيد إذا كان لديك مكتبة فئة لا تريد إعادة ترجمتها.

يوضح الإجراء التالي كيفية استخدام Visual Basic 6.0 لإنشاء كائن COM يحتوي على فئة, ثم استخدامها كفئة أساسية.

ملاحظة

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

لبناء كائن COM المستخدم في هذه الإرشادات التفصيلية

  1. في Visual Basic 6.0 افتح مشروع DLL ActiveX جديد. يتم إنشاء مشروع يسمى Project1. يحتوي على فئة باسم Class1.

  2. في مستكشف المشاريع، انقر بزر الماوس الأيمن فوق Project1 ثم انقر فوق خصائص Project1. يتم عرض مربع الحوار خصائص المشروع.

  3. على علامة التبويب عام الخاصة بمربع حوار خصائص مشروع قم بتغيير اسم المشروع بكتابة ،ComObject1 في حقل اسم مشروع.

  4. في مستكشف المشاريع، انقر بزر الماوس الأيمن فوق Class1، ثم انقر فوق خصائص. يتم عرض نافذة خصائص للفئة.

  5. قم بتغيير خاصية Name إلى MathFunctions.

  6. في مستكشف المشروع، انقر بزر الماوس الأيمن فوق MathFunctions، ثم انقر فوق عرض تعليمات برمجية. يعرض محرر تعليمات برمجية.

  7. أضف متغير محلي لتقييد قيمة الخاصية:

    ' Local variable to hold property value
    Private mvarProp1 As Integer
    
  8. أضف خاصية Let و خاصية Get إجراءات الخاصية:

    Public Property Let Prop1(ByVal vData As Integer)
       'Used when assigning a value to the property.
       mvarProp1 = vData
    End Property
    Public Property Get Prop1() As Integer
       'Used when retrieving a property's value.
       Prop1 = mvarProp1
    End Property
    
  9. أضف دالة:

    Function AddNumbers( 
       ByVal SomeNumber As Integer, 
       ByVal AnotherNumber As Integer) As Integer
    
       AddNumbers = SomeNumber + AnotherNumber
    End Function
    
  10. قم بإنشاء وتسجيل كائن COM عن طريق النقر فوق إنشاء ComObject1.dll على قائمة ملف.

    ملاحظة

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

تجميعات التوافق

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

لاستخدام كائن COM مع ‏‫Visual Basic 2005 والإصدارات الأحدث

  1. افتح نافذة Visual Basic جديدة لمشروع التطبيق .

  2. في قائمة المشروع انقر فوق إضافة مرجع .

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

  3. على تبويب COM، انقر نقر مزدوج فوق ComObject1 في قائمة اسم المكون ثم انقر فوق ‏‏موافق.

  4. في مشروع قائمة ، انقر فوق إضافة عنصر جديد .

    مربع الحوار "إضافة عنصر جديد" يتم عرضه.

  5. في جزء قوالب انقر فوق فئة.

    اسم الملف الافتراضي، Class1.vb، يظهر في الحقل اسم. قم بتغيير هذا الحقل إلى MathClass.vb و انقر فوق إضافة. يؤدي هذا إلى إنشاء فئة باسم MathClass، ويعرض التعليمات البرمجية الخاصة به.

  6. أضف التعليمات البرمجية التالية إلى أعلى MathClass لترث من الفئة COM.

    ' The inherited class is called MathFunctions in the base class,
    ' but the interop assembly appends the word Class to the name.
    Inherits ComObject1.MathFunctionsClass
    
  7. يحمل الأسلوب العام الخاص بالفئة الأساسية بشكل زائد بواسطة إضافة التعليمات البرمجية التالية إلى MathClass:

    '  This method overloads the method AddNumbers from the base class.
    Overloads Function AddNumbers(
        ByVal SomeNumber As Integer,
        ByVal AnotherNumber As Integer) As Integer
    
        Return SomeNumber + AnotherNumber
    End Function
    
  8. وسع الفئة الموروثة بإضافة التعليمات البرمجية التالية إلى MathClass:

    '  The following function extends the inherited class.
    Function SubtractNumbers(
        ByVal SomeNumber As Integer,
        ByVal AnotherNumber As Integer) As Integer
    
        Return AnotherNumber - SomeNumber
    End Function
    

ترث الفئة الجديدة خصائص الفئة الأساسية في كائن COM، يحمل أسلوب يشكل زائد، و يعرف أسلوب جديد لتوسيع الفئة.

لاختبار الفئة الموروثة

  1. أضف زر إلى نموذج بدء التشغيل، ومن ثم انقر نقراً مزدوجاً فوقه لعرض التعليمات البرمجية الخاصة به.

  2. في زر إجراء معالج الحدث Click، قم بإضافة التعليمات البرمجية التالية لإنشاء مثيل MathClass ثم قم باستدعاء الأساليب المحملة فوق طاقتها:

    Dim Result1 As Short
    Dim Result2 As Integer
    Dim Result3 As Integer
    Dim MathObject As New MathClass
    Result1 = MathObject.AddNumbers(4S, 2S) ' Add two Shorts.
    Result2 = MathObject.AddNumbers(4, 2) 'Add two Integers.
    Result3 = MathObject.SubtractNumbers(2, 4) ' Subtract 2 from 4.
    MathObject.Prop1 = 6 ' Set an inherited property.
    
    MsgBox("Calling the AddNumbers method in the base class " &
           "using Short type numbers 4 and 2 = " & Result1)
    MsgBox("Calling the overloaded AddNumbers method using " &
           "Integer type numbers 4 and 2 = " & Result2)
    MsgBox("Calling the SubtractNumbers method " &
           "subtracting 2 from 4 = " & Result3)
    MsgBox("The value of the inherited property is " &
            MathObject.Prop1)
    
  3. شغل المشروع بالضغط على F5.

عند النقر فوق الزر على النموذج، أولاً يتم استدعاء الأسلوب AddNumbers مع أرقام نوع بيانات Short و يختار Visual Basic الأسلوب المناسب من الفئة الأساسية. الاستدعاء الثاني إلى AddNumbers يكون موجه إلى الأسلوب المحمل بشكل زائد من MathClass. يستدعي الاستدعاء الثالث الأسلوب SubtractNumbers, الذي يوسع الفئة. الخاصية في الفئة الأساسية يتم تعيينها، ويتم عرض القيمة.

الخطوات التالية

قد تكون لاحظت أن الدالة AddNumbers المحمله بشكل زائد يبدو أن لها نفس نوع البيانات كالأسلوب الموروث من الفئة الأساسية لكائن COM. وهذا لأن وسائط و معلمات أسلوب الفئة الأساسية معرّفة على أنها أعداد صحيحة من 16-بت في Visual Basic 6.0، ولكن يتم عرضها على أنها أعداد صحيحة من 16-بت من نوع Shortفي الإصدارات اللاحقة من Visual Basic. تقبل الدالة الجديدة أعداد صحيحة من 32-بت، وتحمل دالة الفئة الأساسية بشكل زائد.

عند العمل مع كائنات COM, تأكد من تحقق حجم و أنواع بيانات المعلمات. على سبيل المثال، عند استخدام كائن COM يقبل كائن مجموعة Visual Basic 6.0 كوسيطة، لا يمكنك توفير مجموعة من إصدار أحدث من Visual Basic.

يمكن تجاوز خصائص وأساليب موروثة من فئات COM، مما يعني أنه يمكنك تعريف خاصية محلية أو أسلوب يستبدل خاصية أو أسلوب موروثة من فئة COM أساسية. قواعد تجاوز خصائص COM الموروثة تشابه قواعد تجاوز خصائص وأساليب أخرى مع الاستثناءات التالية:

  • إذا قمت بتجاوز أي خاصية أو أسلوب موروثه من فئة COM، يجب تجاوز كل الخصائص و الأساليب الموروثة الأخرى.

  • الخصائص التي تستخدم معلمات ByRef لا يمكن تجاوزها.

راجع أيضًا:

المرجع

يرث الكشف

نوع بيانات Short في (Visual Basic)

موارد أخرى

إمكانية التشغيل التفاعلي COM في تطبيقات NET Framework.