تمرين - فهم نطاق الأسلوب
for تمثل الحلقات والعبارات if-else والأساليب جميعها أنواعا مختلفة من كتل التعليمات البرمجية. كل كتلة تعليمة برمجية لها "النطاق" الخاص بها. "النطاق" هو منطقة البرنامج حيث يمكن الوصول إلى بيانات معينة. لا يمكن الوصول إلى المتغيرات المعلن عنها داخل أسلوب أو أي كتلة تعليمات برمجية إلا داخل تلك المنطقة. مع تزايد تعقيد البرامج، يساعد هذا النمط المبرمجين على استخدام المتغيرات المسماة بوضوح باستمرار والحفاظ على التعليمات البرمجية سهلة القراءة.
في هذا التمرين، ستتعرف على المزيد حول نطاق الأسلوب من خلال العمل مع أنواع مختلفة من الأساليب والمتغيرات.
اختبار نطاق المتغير
تسمى العبارات المعلنة خارج أي كتلة تعليمات برمجية عبارات المستوى الأعلى. تسمى المتغيرات المعلنة في عبارات المستوى الأعلى "المتغيرات العمومية". لا تقتصر المتغيرات العمومية على أي نطاق، ويمكن استخدامها في أي مكان في جميع أنحاء البرنامج. يمكن أن تكون المتغيرات العمومية مفيدة للأساليب المختلفة التي تحتاج إلى الوصول إلى نفس البيانات. ومع ذلك، من المهم الانتباه إلى أسماء المتغيرات في نطاقات مختلفة.
في محرر Visual Studio Code، احذف أي تعليمة برمجية موجودة من التدريبات السابقة.
أدخل التعليمات البرمجية التالية في محرر التعليمات البرمجية Visual Studio:
string[] students = {"Jenna", "Ayesha", "Carlos", "Viktor"}; DisplayStudents(students); DisplayStudents(new string[] {"Robert","Vanya"}); void DisplayStudents(string[] students) { foreach (string student in students) { Console.Write($"{student}, "); } Console.WriteLine(); }في هذه التعليمة البرمجية، يمكنك إنشاء صفيف عمومي
students، وأسلوبDisplayStudentsيقبل معلمة بنفس الاسم.احفظ التعليمات البرمجية وشغلها لمراقبة الإخراج التالي:
Jenna, Ayesha, Carlos, Viktor, Robert, Vanya,لاحظ أن معلمة
studentالأسلوب لها الأسبقية على الصفيف العموميstudent. من المهم أن تكون متعمدا حول المتغيرات العمومية التي تريد أن تستخدمها أساليبك.حذف التعليمات البرمجية السابقة.
أدخل التعليمات البرمجية التالية في المحرر:
PrintCircleArea(12); void PrintCircleArea(int radius) { double pi = 3.14159; double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); }تحسب هذه التعليمة البرمجية منطقة الدائرة وتعرضها.
حاول الرجوع إلى المتغيرات داخل
PrintCircleAreaالأسلوب عن طريق تحديث التعليمات البرمجية الخاصة بك كما يلي:PrintCircleArea(12); double circumference = 2 * pi * radius;تظهر رسائل الخطأ لإعلامك بأن الأسماء
piوغيرradiusموجودة في النطاق الحالي. هذه المتغيرات موجودة فقط ضمنPrintCircleAreaنطاق الأسلوب.احذف التعليمات البرمجية غير الصحيحة وأضف التعليمات البرمجية التالية:
void PrintCircleCircumference(int radius) { double pi = 3.14159; double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }نظرا لتعيين المتغير
piإلى نفس القيمة الثابتة واستخدامه في كلتا الطريقتين، فإن هذه القيمة مرشح جيد لمتغير عمومي. في هذا المثال،radiusليس متغيرا عموميا بحيث يمكنك استدعاء الأساليب بقيم مختلفة منradiusدون تحديث متغير في كل مرة.تحديث التعليمات البرمجية الخاصة بك إلى ما يلي:
double pi = 3.14159; void PrintCircleArea(int radius) { double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); } void PrintCircleCircumference(int radius) { double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }الآن يمكن لكلا الأسلوبين الرجوع إلى نفس قيمة
piدون الحاجة إلى تعريفها. ربما تكون قد خمنت بالفعل أن الأساليب يمكن أن تستدعي أساليب أخرى. بشكل عام، طالما تم تعريف أسلوب ضمن نطاق البرنامج الخاص بك، يمكن استدعاؤه في أي مكان.أضف أسلوبا جديدا إلى التعليمات البرمجية الخاصة بك كما يلي:
double pi = 3.14159; PrintCircleInfo(12); PrintCircleInfo(24); void PrintCircleInfo(int radius) { Console.WriteLine($"Circle with radius {radius}"); PrintCircleArea(radius); PrintCircleCircumference(radius); }في هذه التعليمات البرمجية، يمكنك إنشاء أسلوب
PrintCircleInfoجديد لاستدعاء الأساليب الموجودة. يتم تمرير قيمةradiusأيضا إلى كل أسلوب. يمكن أن يساعد إنشاء أساليب نمطية في الحفاظ على تنظيم التعليمات البرمجية الخاصة بك وسهولة قراءتها.احفظ التعليمات البرمجية وشغلها لمراقبة الإخراج التالي:
Circle with radius 12 Area = 452.38896 Circumference = 75.39815999999999 Circle with radius 24 Area = 1809.55584 Circumference = 150.79631999999998
خلاصة
إليك ما تعلمته حول نطاق الأسلوب حتى الآن:
- لا يمكن الوصول إلى المتغيرات المعلنة داخل أسلوب إلا لهذا الأسلوب.
- يمكن الوصول إلى المتغيرات المعلن عنها في عبارات المستوى الأعلى خلال البرنامج.
- لا يمكن للأساليب الوصول إلى المتغيرات المحددة ضمن أساليب مختلفة.
- يمكن للأساليب استدعاء أساليب أخرى.