آموزش دلفی

جستجوی Namespace ها در دلفی

جستجوی Namespace ها

همان طور که میدانید یک یونیت برای استفاده از دیگر یونیت ها باید اسامی آنها را در لیست uses خود قید کند
در مورد یونیت هایی که Namespace  آن ها به صورت صریح قید شده باشد
دامنه جستجو مشخص خواهد بود اما در مورد یونیت های generic کامپایلر باید دامنه جستجو را مشخص کند
برای مثال به عبارات زیر توجه کنید

Unit MyCompany.Programs.Units.MyUnit1;
Uses MyCompany.Libs.Unit2, Unit3, Unit4;

تعاریف فوق مشخص میکنند که MyUnit1 عضوی از یک Namespace سه یونیت دیگر را مورد استفاده قرار داده است
در مورد unit2 مشکلی وجود ندارد به این دلیل که نام یونیت به طور کامل ذکر شده است
اما درمورد unit3  و unit4  کامپایلر باید عمل جستجو را انجام دهد

ترتیب جستجوی Namespace ها

  • تنظیمات کامپایلر
  • مکان های جستجو Namespace مربوط به فایل پروژه
  • Project default namespace
  • Namespace مربوط به یونیت جاری

فایل پروژه ممکن است به صورت اختیاری شامل لیستی از Namespace  ها باشد که به وسیله علامت کا ما    ,  از یکدیگر جدا شده و با علامت سمیکالن  ;  خاتمه یافته باشند
برای مثال ممکن است فایل پروژه شامل عبارات زیر باشد

Program MyCompany.Programs.MyProgram;

Namespace MyCompany.Libs,Unitdegts,
 Mycompany.Libs.network;

در حالت کلی جستجوی Namespace  ها به به ترتیب زیر صورت میگیرد

  1. Namespace مربوط به یونیت جاری ( در صورت وجود )
  2. Project default namespace ( در صورت وجود )
  3. Namespace هایی که توسط عبارت Namespace مشخص شده باشند
    ( به ترتیب از انتهای لیست مورد جستجو قرار میگیرند )
  4. Namespace هایی که از طریق تنظیمات کامپایلر مشخص شده باشند

باتوجه به مثال قبلی اگر یونیت برنامه دارای عبارت زیرباشد

Unit Mycompany,Programs.Units.MyUnit1;

کامپایلر دلفی عمل جستجو Namespace ها را به ترتیب زیر انجام خواهد داد

  1. Mycompany,Programs.Units
  2. Mycompany,Programs
  3. Mycompany.Libs.network
  4. Mycompany.Libs.UIWdgets
  5. Namespace هایی که از طریق تنظیمات کامپایلر مشخص شده اند

توجه داشته باشید که اگر یونیت جاری generic باشد
عمل جستجو از Project default namespace آغاز خواهد شد

5/5 - (2 امتیاز)

امتیاز به این مطلب

5/5 - (2 امتیاز)

لینک کوتاه

لینک Qrcode

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا

Adblock رو غیر فعال کنید

بخشی از درآمد سایت با تبلیغات تامین می شود لطفا با غیر فعال کردن ad blocker از ما حمایت کنید