كيفية القيام بما يلي: تعريف فئة التي يمكن أن توفر وظيفة مماثلة على أنواع بيانات مختلفة
يمكنك تعريف فئة من المكان الذي يمكنك فيه إنشاء كائنات التي توفر وظائف مماثلة على أنواع بيانات مختلفة. للقيام بذلك، حدد واحد أو أكثر من معلمات النوع في التعريف. ثم يمكن للفئة أن تعمل كقالب للكائنات التي تستخدم أنواع بيانات مختلفة. الـفئة المعرفه بهذه الطريقة تسمى فئة عامة.
الميزة من تعريف فئة عامة هي تعرّفها مرة واحدة فقط, ويمكن للتعليمات البرمجية الخاصة بك استخدامها لإنشاء العديد من الكائنات التي تستخدم مجموعة متنوعة من أنواع بيانات. هذا النتائج في أداء أفضل من تعريف فئة ذات Object النوع.
بالإضافة إلى فئات، يمكنك أيضاً تعريف واستخدام بنيات العامة و واجهات الإجراءات و المفوضين.
لـتعريف فئة ذات نوع معلمة
عرف الفئة بالطريقة العادية.
قم بـإضافة (Oftypeparamete )مباشرة بعد اسم الفئة لتحديد نوع معلمة.
إذا كان لديك أكثر من نوع معلمة, قم بإنشاء قائمة مفصولة بفواصل داخل الأقواس. لا تكرر Of الكلمة الأساسية.
في حالة تنفيذ التعليمات البرمجية العمليات على نوع معلمة غير التعيينات البسيطة, اتبع تلك معلمة النوع مع As الجملة لإضافة واحدة أو أكثر من الـقيود. الـقيد يضمن أن النوع المتوفر لتلك معلمة النوع تناسب متطلب كما يلي:
يساند عملية، مثل >، التي تقوم التعليمات البرمجية بتنفيذها.
يساند عضو, مثل أسلوب, التي يمكن للتعليمات البرمجية الوصول اليها
كشف مُنشئ بدون معلمات
إذا لم تقم بتحديد أية قيود, العمليات الوحيدة والأعضاء الذين يمكن للتعليمات البرمجية الخاصة بك استخدامها تلك المدعومة من قبل نوع البيانات كائن. لمزيد من المعلومات، راجع نوع القائمة.
تعريف كل عضو فئة الذي يتم تعريفة مع نوع مدعوم و تعريفه Astypeparameter. ينطبق هذا بالمخزن الداخلي, معلمات الإجراء وقيم الإرجاع.
تأكد من أن التعليمات البرمجية الخاصة بك تستخدم فقط العمليات والأساليب المدعومة من قبل أي نوع هابيانات يمكن تزويد إلى 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