كيفية القيام بما يلي: تعريف فئة التي يمكن أن توفر وظيفة مماثلة على أنواع بيانات مختلفة

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

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

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

لـتعريف فئة ذات نوع معلمة

  1. عرف الفئة بالطريقة العادية.

  2. قم بـإضافة (Oftypeparamete )مباشرة بعد اسم الفئة لتحديد نوع معلمة.

  3. إذا كان لديك أكثر من نوع معلمة, قم بإنشاء قائمة مفصولة بفواصل داخل الأقواس. لا تكرر Of الكلمة الأساسية.

  4. في حالة تنفيذ التعليمات البرمجية العمليات على نوع معلمة غير التعيينات البسيطة, اتبع تلك معلمة النوع مع As الجملة لإضافة واحدة أو أكثر من الـقيود. الـقيد يضمن أن النوع المتوفر لتلك معلمة النوع تناسب متطلب كما يلي:

    • يساند عملية، مثل >، التي تقوم التعليمات البرمجية بتنفيذها.

    • يساند عضو, مثل أسلوب, التي يمكن للتعليمات البرمجية الوصول اليها

    • كشف مُنشئ بدون معلمات

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

  5. تعريف كل عضو فئة الذي يتم تعريفة مع نوع مدعوم و تعريفه Astypeparameter. ينطبق هذا بالمخزن الداخلي, معلمات الإجراء وقيم الإرجاع.

  6. تأكد من أن التعليمات البرمجية الخاصة بك تستخدم فقط العمليات والأساليب المدعومة من قبل أي نوع هابيانات يمكن تزويد إلى itemType.

    يحدد المثال التالي فئة التي تقوم بإدارة قائمة بسيطة جداً. تحتوي القائمة في صفيف الداخلي items، ويمكن للتعليمات البرمجية المستخدمة أن تقوم بتعريف نوع بيانات عناصر القائمة. تـسمح الدالة الإنشائية بمعلمات التعليمات البرمجية المستخدمة من تعيين الرابط العلوي من items، ويقوم المُنشئ الافتراضي بتعيين هذا إلى 9 (بإجمالي 10 عناصر ).

    Public Class simpleList(Of itemType)
      Private items() As itemType
      Private top As Integer
      Private nextp As Integer
      Public Sub New()
        Me.New(9)
      End Sub
      Public Sub New(ByVal t As Integer)
        MyBase.New()
        items = New itemType(t) {}
        top = t
        nextp = 0
      End Sub
      Public Sub add(ByVal i As itemType)
        insert(i, nextp)
      End Sub
      Public Sub insert(ByVal i As itemType, ByVal p As Integer)
        If p > nextp OrElse p < 0 Then
          Throw New System.ArgumentOutOfRangeException("p", 
            " less than 0 or beyond next available list position")
        ElseIf nextp > top Then
          Throw New System.ArgumentException("No room to insert at ", 
            "p")
        ElseIf p < nextp Then
          For j As Integer = nextp To p + 1 Step -1
            items(j) = items(j - 1)
          Next j
        End If
        items(p) = i
        nextp += 1
      End Sub
      Public Sub remove(ByVal p As Integer)
        If p >= nextp OrElse p < 0 Then
            Throw New System.ArgumentOutOfRangeException("p", 
                " less than 0 or beyond last list item")
        ElseIf nextp = 0 Then
            Throw New System.ArgumentException("List empty; cannot remove ", 
                "p")
        ElseIf p < nextp - 1 Then
            For j As Integer = p To nextp - 2
                items(j) = items(j + 1)
            Next j
        End If
        nextp -= 1
      End Sub
      Public ReadOnly Property listLength() As Integer
        Get
          Return nextp
        End Get
      End Property
      Public ReadOnly Property listItem(ByVal p As Integer) As itemType
        Get
          If p >= nextp OrElse p < 0 Then
            Throw New System.ArgumentOutOfRangeException("p", 
              " less than 0 or beyond last list item")
            End If
          Return items(p)
        End Get
      End Property
    End Class
    

    يمكنك تعريف فئة من simpleList للاحتفاظ بقائمة من Integer القيم, فئة أخرى للاحتفاظ بقائمة من String القيم وآخرى للاحتفاظ بـ Date القيم. عدا نوع البيانات من أعضاء القائمة, الكائنات التي تم إنشاؤها من كل هذه الفئات تتصرف بشكل مطابق تماماً.

    وسيطة النوع التي توفرها التعليمات البرمجية المستخدمة إلى itemType يمكن أن تكون نوع جوهري مثل Boolean أو Double، بنية أو قائمة تعداد أو أي نوع من الفئة بما في ذلك التي يعرفها التطبيق الخاص بك.

    يمكنك اختبار الفئة simpleList مع التعليمات البرمجية التالية.

    Public Sub useSimpleList()
      Dim iList As New simpleList(Of Integer)(2)
      Dim sList As New simpleList(Of String)(3)
      Dim dList As New simpleList(Of Date)(2)
      iList.add(10)
      iList.add(20)
      iList.add(30)
      sList.add("First")
      sList.add("extra")
      sList.add("Second")
      sList.add("Third")
      sList.remove(1)
      dList.add(#1/1/2003#)
      dList.add(#3/3/2003#)
      dList.insert(#2/2/2003#, 1)
      Dim s = 
        "Simple list of 3 Integer items (reported length " &
         CStr(iList.listLength) & "):" &
         vbCrLf & CStr(iList.listItem(0)) &
         vbCrLf & CStr(iList.listItem(1)) &
         vbCrLf & CStr(iList.listItem(2)) &
         vbCrLf &
         "Simple list of 4 - 1 String items (reported length " &
         CStr(sList.listLength) & "):" &
         vbCrLf & CStr(sList.listItem(0)) &
         vbCrLf & CStr(sList.listItem(1)) &
         vbCrLf & CStr(sList.listItem(2)) &
         vbCrLf &
         "Simple list of 2 + 1 Date items (reported length " &
         CStr(dList.listLength) & "):" &
         vbCrLf & CStr(dList.listItem(0)) &
         vbCrLf & CStr(dList.listItem(1)) &
         vbCrLf & CStr(dList.listItem(2))
      MsgBox(s)
    End Sub
    

راجع أيضًا:

المهام

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

المرجع

من عبارة (Visual Basic)

نوع القائمة

نوع البيانات كائن

المبادئ

أنواع البيانات في Visual Basic

الـأنواع العامة في Visual Basic

مواصفة اللغة العامة