שימוש במרחבי שמות ב- VB.NET

הדרך הנפוצה ביותר משמשת לרחבי שמות VB.NET של מרבית השמות מתכנתים הוא לספר למהדר אילו ספריות .NET דרושות לתוכנית מסוימת. כשאתה בוחר "תבנית" לפרויקט שלך (כמו "יישום טפסים של חלונות") אחד הדברים שאתה בוחר הוא מערך מרחבי השמות הספציפי אליו יפנו אוטומטית פרויקט. זה הופך את הקוד במרחב השמות לזמין לתוכנית שלך.

לדוגמה, כמה מרחבי השמות והקבצים בפועל שהם נמצאים עבור יישום טפסים של Windows הם:

מערכת> ב- System.dll
מערכת. נתונים> במערכת. Data.dll
מערכת. פריסה> מערכת. Deployment.dll
מערכת. רישום> מערכת. Drawing.dll
מערכת. חלונות. טפסים> מערכת. חלונות. Forms.dll

אתה יכול לראות (ולשנות) את מרחבי השמות וההפניות לפרויקט שלך במאפייני הפרויקט תחת הפניות כרטיסייה.

דרך חשיבה זו על מרחבי שמות גורמת להם להיראות כמו אותו הדבר כמו "ספריית קוד", אבל זה רק חלק מהרעיון. היתרון האמיתי של מרחבי שמות הוא ארגון.

רובנו לא נקבל את ההזדמנות להקים מדרג מרחב שמות חדש מכיוון שבדרך כלל זה נעשה רק פעם אחת 'בהתחלה' עבור ספריית קוד גדולה ומסובכת. אך כאן תוכלו ללמוד כיצד לפרש את מרחבי השמות בהם תתבקשו להשתמש בארגונים רבים.

מה עושים מרחבי שמות

instagram viewer

מרחבי שמות מאפשרים לארגן את עשרות אלפי האובייקטים של .NET Framework ואת כל האובייקטים אותם מתכנתי VB יוצרים גם בפרויקטים, כך שהם לא יתנגשו.

לדוגמה, אם אתה מחפש .NET אחר צבע אובייקט, אתה מוצא שניים. יש צבע אובייקט בשניהם:

מערכת. ציור
מערכת. חלונות. מדיה

אם תוסיף יבוא הצהרה עבור שני מרחבי השמות (הפניה עשויה להיות נחוצה גם למאפייני הפרויקט) ...

מערכת יבוא. ציור
מערכת יבוא. חלונות. מדיה

... ואז הצהרה כמו ...

עמעום כצבע

... יסומנו כשגיאה עם ההערה, "צבע הוא דו משמעי". NET יציין ששני מרחבי השמות מכילים אובייקט בשם זה. שגיאה מסוג זה מכונה "התנגשות שם".

זו הסיבה האמיתית ל"מרחבי שמות "וזו גם הדרך בה משתמשים במרחבי שמות בטכנולוגיות אחרות (כמו XML). מרחבי שמות מאפשרים להשתמש באותו שם אובייקט, כגון צבע, כשהשם מתאים ועדיין לשמור על סדר. אתה יכול להגדיר א צבע התנגד בקוד שלך ושמור שהוא נבדל מהקודים ב- .NET (או הקוד של מתכנתים אחרים).

מרחב השמות MyColor
צבע כיתה ציבורית
צבע משנה ()
' עשה משהו
סיום משנה
סיום כיתה
סוף שמות המרחב

אתה יכול גם להשתמש ב- צבע התנגד למקום אחר בתוכנית שלך כך:

Dim c כמו MyColor חדש. צבע
ג. צבע ()

לפני שאתה נכנס לחלק מהתכונות האחרות, שים לב שכל פרויקט מכיל במרחב השמות. VB.NET משתמש בשם הפרויקט שלך (WindowsApplication1 עבור יישום טפסים רגיל אם לא תשנה אותו כמרחב השמות של ברירת המחדל. כדי לראות זאת, צור פרוייקט חדש (השתמשנו בשם NSProj ובדוק את הכלי לדפדפן האובייקטים):

  1. לחץ על כאן כדי להציג את האיור
  2. לחץ על חזור כפתור בדפדפן שלך כדי לחזור

דפדפן האובייקטים מציג את מרחב השמות החדש של הפרוייקט שלך (ואת האובייקטים המוגדרים אוטומטית בו) לצד מרחבי השמות .NET Framework יכולת זו של VB.NET להפוך את האובייקטים שלך שווים לאובייקטים של .NET הוא אחד המפתחות לעוצמה וגמישות. לדוגמה, זו הסיבה ש- Intellisense תציג אובייקטים משלך ברגע שתגדיר אותם.

כדי להגדיל את זה, בואו נגדיר פרויקט חדש (שמנו את שלנו NewNSProj באותו פתרון (השתמש קובץ > הוסף > פרוייקט חדש ...) וקוד מרחב שמות חדש בפרויקט זה. ורק כדי שיהיה יותר כיף, בואו נשים את מרחב השמות החדש במודול חדש (שמנו אותו NewNSMod). ומכיוון שיש לקודד אובייקט ככיתה, הוספנו גם חסימת מחלקה (בשם NewNSObj). להלן הקוד ופתרון הפתרונות כדי להראות כיצד הוא משתלב יחד:

  1. לחץ על כאן כדי להציג את האיור
  2. לחץ על חזור כפתור בדפדפן שלך כדי לחזור

מכיוון שהקוד שלך הוא 'בדיוק כמו קוד מסגרת', יש להוסיף הפניה אליו NewNSMod בתוך NSProj להשתמש באובייקט במרחב השמות, למרות שהם באותו פתרון. ברגע שזה ייעשה, אתה יכול להכריז על אובייקט NSProj מבוסס על השיטה ב- NewNSMod. אתה צריך גם "לבנות" את הפרויקט כך שאובייקט בפועל קיים להתייחסות.

Dim o כמו חדש NewNSProj. AVBNS.NewNSMod. NewNSObj
o. AVBNSMethod ()

זה די עמום אולם הצהרה. אנו יכולים לקצר זאת על ידי שימוש ב- יבוא הצהרה עם כינוי.

יבוא NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim o כמו ניו NS
o. AVBNSMethod ()

לחיצה על כפתור הפעלה מציגה את MsgBox ממרחב השמות AVBNS, "היי! זה עבד!"

מתי ומדוע להשתמש בשטחי שמות

הכל עד כה באמת היה תחביר - ה קידוד כללים שעליך למלא בהם באמצעות מרחבי שמות. אבל כדי לנצל באמת אתה צריך שני דברים:

  • דרישה לארגון מרחב השמות מלכתחילה. אתה זקוק ליותר מסתם פרויקט "שלום עולם" לפני שארגון מרחבי השמות יתחיל להשתלם.
  • תוכנית להשתמש בהם.

בכללי, מיקרוסופט ממליצה לארגן את קוד הארגון שלך באמצעות שילוב של שם החברה שלך עם שם המוצר.

כך, למשל, אם אתה אדריכל התוכנה הראשי של Dr. No's Nose יודע ניתוח פלסטי, ייתכן שתרצה לארגן את מרחבי השמות שלך כמו ...

DRNo
יעוץ
קרא את TheWireNatch ChargeEm
TellEmNuthin
ניתוח
ElephantMan
MyEyeLidsRGone

זה דומה לארגון .NET ...

חפץ
מערכת
הליבה
IO
לינק
נתונים
Odbc
מ"ר

מרחבי השמות ברמת-השג מושגת על ידי קינון פשוט של חסימות מרחב-השמות.

מרחב שמות DRNo
ניתוח חלל שמות
מרחב השמות MyEyeLidsRGone
קוד VB
סוף שמות המרחב
סוף שמות המרחב
סוף שמות המרחב

או

מרחב שמות DRNo. ניתוח. MyEyeLidsRGone
קוד VB
סוף שמות המרחב
instagram story viewer