إدارة نطاق المتغير

مكتمل

النطاق هو منطقة التعليمات البرمجية الخاصة بك حيث يوجد متغير ويمكن استخدامه. يساعدك فهم النطاق على كتابة أساليب لا تتداخل عن طريق الخطأ مع بعضها البعض، وتساعدك على تجنب فئة كاملة من الأخطاء المربكة.

المتغيرات المحلية

المتغير الذي تم إنشاؤه داخل أسلوب هو متغير محلي. وهو موجود فقط أثناء تشغيل الأسلوب، ولا يمكن رؤيته من خارج الأسلوب.

int CalculateTotal(int price, int tax)
{
    int total = price + tax; // total is local to this method
    return total;
}

CalculateTotal(10, 2);
Console.WriteLine(total); // Compile error: total doesn't exist here

يحصل كل استدعاء لأسلوب على مجموعة خاصة به من المتغيرات المحلية، لذلك لا تقوم الأساليب عن طريق الخطأ بالكتابة فوق بيانات بعضها البعض.

نطاق الحظر

المتغيرات المعلن عنها داخل كتلة، مثل عبارة if أو تكرار حلقي، موجودة فقط داخل تلك الكتلة.

if (true)
{
    int message = 42;
    Console.WriteLine(message); // OK: message exists in this block
}

Console.WriteLine(message); // Compile error: message doesn't exist here

ملحوظة

ليس لدى C# ما يعادل مباشرة المتغيرات العمومية Python داخل برنامج نصي واحد. عادة ما تعني مشاركة الحالة بين الأساليب في C# تخزينها في حقل فئة، وهو موضوع لوحدة نمطية لاحقة. في الوقت الحالي، تفضل تمرير القيم كمعلمات والحصول على النتائج مرة أخرى مع قيم الإرجاع.

لماذا النطاق مهم

  • تحافظ المتغيرات المحلية على الأساليب مستقلة. لا يمكن أن يتداخل متغير في أسلوب مع آخر.
  • يمنع نطاق الحظر القيم المؤقتة من التسرب إلى بقية الأسلوب الخاص بك.
  • إذا كانت هناك عدة أساليب تحتاج إلى مشاركة قيمة، فمررها كمعلمة وإرجاع النتيجة المحدثة، بدلا من الاعتماد على متغير تم الإعلان عنه في مكان آخر.