Search VB 2010

Thursday, April 14, 2011

OOP VB .Net Toturials and Examples - دروس فى ال أو أو بى

تعرفنا على الاجراء و الداله و الفرق ينهما, الموديول و الكلاس موديول و الفرق بينهما .

كما فى المثال السابق : قم بانشاء Sub جديد و لكن بنفس اسم الـ Constructor فى الـ Class2
Sub New ()
system.io.file.create("C:\test.txt")
أى من الاجرائين سيقوم المشروع بتنفيذه أولا ؟؟؟
سيقوم بتنفيذ الاجراء الاول أى انه فى حالة أكثر من Constructor يقوم المشروع بتنفيذ الــ Constructor المشار اليه أولا ..
نتوجه الى Button2_Click فى المشروع السابق و نكتب :
Dim C As New Class1
هذا الكود سيقوم بتنفيذ الاجراء الثانى لأن الكلاس الاول مبنى على متغيرات .
الان عند تنفيذ الكود فإنه سيقوم بانشاء File فى الــ C اسمه Test و بما أن الكلاس متعلق بالذاكرة العشوائيه فانه من المفروض أو المنطقى ان عندما ينتهى عمل الـ Class فان العمل ينتهى بالذاكرة ايضا .. و هنا يأتى دور الـ Destructor و يكتب بهذا الشكل :
Protected Overrides Sub Finalize ()
MsgBox ("Class Ends Here")
End Sub
و ينفذ هذا الكود قبل الخروج من البرنامج مثل الحدث Dispose أو Close حيث يحذف الـ Class من ذاكرة الكمبيوتر و يطلق عليه Class Unused أو له اسم بالذاكرة لكن لا يوجد متغير (C) يشير اليه لكى يفعل عمله و كود الــ GC.Collect يقوم بحذف اسماء الـ Class من على الذاكرة الغير مستخدمه
Form1_Dispose
C = Nothing
و يصبح شكل المشروع الان كما بالصورة رقم (9) ...
صورة رقم 9


صورة رقم 9
- ما هى المتغيرات المسموح بها فى الـــ Class ؟
فى نفس المشروع السابق اضف Class2 و لاحظ عند كتابة الاكواد التاليه :
Public Class Class2
Public X As Integer
متغير نصى
Public Const Y As Double = 300
ثابت نوعه Double يجب أن يأخذ قيمه وقت تعريفه مباشرة و Y لن تتغير قيمتها طول المشروع و من مميزاته أنه يمكن استدعائة بدون أخذ نسخه من الكلاس فى المنطقة المراد استخدامه فيها (Class2.Y) مباشرة بدون الحاجه الى كتابــــــــة (Dim C As New Class2)
Pubic Shared Z As Integer
هو متغير Read/Write و يختلف مع String أنه يمكن استدعائة عن طريق اسم الكلاس مباشرة دون الحاجه الى حجز نسخه من الـ Class فى الذاكره
Public ReadOnly B As Integer
المتغير B لن يمكن التصريح عن قيمتة فى المشرع 
End Class
الفرق ين كلا من (Const) و (ReadOnly) .....
الاول Cosnt : لا يجب استدعاء الكلاس و لكن يجب ان يأخذ قيمتة فى الـ Constructor أو نفس السطر المعرف فيه عموما .
الثانى ReadOnly : لا يمكن استدعائة الا بعد أخذ نسخه من الـ Class أولا
اذا هذه هى المتغيرات الممكن كتابتها فى الـ Class .
و الان .... ما هو الفرق بين الاجراء Sub والدالة Function ؟؟
- الدالة : تقوم بتنفيذ وظيفه معينة ثم Return للنتيجه بقيمه معينة .
- الاجراء : يقوم تنفيذ الاكواد المكتوبة به فقط .
لاحظ :

لا يمكننا استخدام كلا من الداله و الاجراء الا على مستوى Form1 و لكن لتعميم عملهم على مستوى المشروع يجب نقلهم كما قمنا فى الاجراء الى الموديول ة Module
أو توسيع نطاق عملهم أكثر فأكثر عن طريق اضافتهم الى Class Module ...
و الان .... ما هو افرق بين الموديول Module و الكلاس موديول Class Module ؟؟
- الموديول : عباره عن كلف نضع به الاجراءات و الدوال و الخصائص ..... الخ كى نستطيع الوصل اليها داخل المشروع كله .
- الكلاس موديول : نفس تعريف الموديول و لكن بالاضافه الى انه يمكن استخدام مكونات الــ Class Module خارج المشروع
الحالى فى أى مشروع أخر سنصنعه و ذلك مثل استخدام مكتبة ADO و OLEDB حيث نقوم باستخدام Class مثل
Connection و Adapter فى التوصيل بقاعدة البيانات .
و ايضا يمكن وضع الـ Class فى مكتب لخدمة جميع المشاريع . 

To Be Continued .......... تابعونا

Visual Basic Courses - Share