جود ثيمز

الجمعة، 24 مايو 2013

المتغيرات في فيجوال بيسك .نت

المتغيرات (variables) هي أماكن تخزين البيانات في ذاكرة الكمبيوتر ولأنها الأساس في تعلم أي لغة برمجة وجب عليك تعلمها واتقانها فكل ماسنتعلمه في المستقبل يعتمد على المتغيرات واذا كنت قد مررت بأي لغة برمجة ستجد أن فكرة المتغيرات في لغة فيجوال بيسك .نت مشابهة تقريباً للغات الأخرى ماعدا بعض الاختلافات والتي تتعلق بأسلوب كتابة اللغة أو بعض أنواع المتغيرات الخاصة باللغة نفسها .

التصريح عن المتغيرات :

التصريح عن المتغيرات يعني أن تخبر الكمبيوتر - عن طريق برنامجك - أنك ستحجز مكاناً في الذاكرة لتخزين بيانات من نوع معين وباسم معين ، وفي فيجوال بيسك .نت نستخدم الكلمة المحجوزة Dim للاعلان (التصريح) عن المتغيرات والقاعدة العامة لها كالتالي :
Dim variable_name As variable_type = value
لنأخذ مثالاً : اذا اردنا التصريح عن متغير باسم myVariable من النوع Integer ونضع فيه القيمة 20 سنكتب الكود التالي :
Dim myVariable As Integer = 20
ولكن أين نضع هذا الكود ؟؟
يمكنك وضع هذا الكود داخل الوحدة البرمجية وخارج الاجراء Main :
Module Module1
Dim myVariable As Integer = 20
Sub Main()
Console.WriteLine(myVariable)
console.ReadLine()
End Sub
End Module
ويمكنك استخدام هذا المتغير داخل أي اجراء أو تركيب "Block" داخل الوحدة البرمجية المسماة Module1 وهذه تسمى المتغيرات العامة أو المتغيرات على مستوى الوحدة .
أو يمكنك وضعه داخل الاجراء Main :
Module Module1
Sub Main()
Dim myVariable As Integer = 20
Console.WriteLine(myVariable)
console.ReadLine()
End Sub
End Module
ولكن انتبه فالمتغير الذي تقوم بالتصريح عنه داخل أي اجراء لن تستطيع استعماله في اجراءات أخرى وهذا مايسمى بـ "حياة المتغير وقابلية الرؤية" .
أخيراً يمكنك التصريح عن المتغير دون اسناد قيمة له ومن ثم اسناد القيمة له في وقت آخر :
Module Module1
Dim myVariable As Integer
Sub Main()
myVariable = 20
Console.WriteLine(myVariable)
console.ReadLine()
End Sub
End Module

المتغيرات الديناميكية :

المتغيرات التي شرحناها سابقاً تسمى المتغيرات الديناميكية Dynamic Variables أي أننا نستطيع تغيير قيمتها في أي وقت , وهناك نوع من المتغيرات الديناميكية يسمى المتغيرات الديناميكية المحلية Dynamic Local Variables وهي التي نصرح عنها داخل الاجراءات حيث تكون حياة المتغير داخل هذا الاجراء فقط ولا يمكن استخدامه خارج الاجراء , وهناك نوع آخر وهو Block Level Variables وهي المتغيرات التي تصرح داخل Block او تركيب ( مثلاً جملة تحكم مثل If...End If , أو جملة تكرار مثل For ) وتكون حياة المغير داخل التركيب الذي صرح فيه فقط ولكن يجب الانتباه إلى أن هذا المتغير يحتفظ بقيمته على مستوى الاجراء حتى ولو خرجت من التركيب الذي عرفته فيه , و للتصريح عن المتغير الديناميكي نستخدم الكلمة المحجوزة Dim , مثال :
Dim myVariable As Integer

المتغيرات الستاتيكية :

ينطبق على المتغيرات الستاتيكية Static Variables كل ما ذكرناه عن المتغيرات الديناميكية , إلا أن المتغير الستاتيكي يحتفظ بقيمته ثابتة حتى نهاية البرنامج , وللتصريح عن المتغير الستاتيكي نستخدم الكلمة المحجوزة Static بدلاً من Dim , مثال :
Static myVariable As Integer

الثوابت :

يجب عليك التفريق بين المتغيرات الستاتيكية والثوابت فالمتغيرات الستاتيكية يمكن أن تتغير قيمتها اثناء سير البرنامج وميزتها كما ذكرنا أنها تحتفظ بآخر قيمة لها حتى نهاية البرنامج , أما الثوابت فهي تختلف تماماً عن المتغيرات وهي تحتفظ بقيمة ثابتة لا يمكن أن تتغير مهما فعلت وإن حاولت تغييرها بأي وسيلة فستظهر لك مباشرة رسالة خطأ من المترجم , وللتصريح عن الثوابت نستخدم الكلمة المحجوزة Const , مثال :
Const Pi As Double = 3.14

يمكنك الاطلاع على الجدول أدناه للتعرف على أنواع البيانات في لغة فيجوال بيسك .نت :
(انقر على صورة الجدول لتكبيرها)