באופן אנלוגי לNested types, קיימת לנו אפשרות להגדיר משהו שנקרא Nested namespace.
מה זה בדיוק?
זהו בעצם Namespace שמוכל בתוך Namespace אחר:
|
|
כדי לגשת לטיפוס מהNamespace הפנימי נצטרך לציין את כלל הקינון:
|
|
אפשר גם להשתמש בUsing directive:
|
|
מה זה נותן לנו?
ברגע שנחיה בתוך Nested Namespace, נוכל לגשת לכל מה שיש Namespaceים שמעלינו בלי using:
למשל, בקובץ אחד נכתוב משהו כזה:
|
|
ובקובץ אחר:
|
|
בלי using!
בנוסף, שימוש בNested Namespaces מאפשר לנו לארגן את הקוד שלנו בצורה נכונה,
כלומר מי שמשתמש בקוד שלנו יוכל להתמצא ע"י שיטוט בNested Namespaces, כמו שיטוט בתיקיות היררכיות ברשת.
ככה אפשר לדעת למי שייך namespace מסוים, לפי הNamespace הראשי שמכיל אותו.
למשל, כל הNamespaceים של הFramework הם Nested Namespaces של System. ככה אפשר לזהות שהם של הFramework ולא שלנו.
דרך אלטרנטיבית להשתמש בNested namespaces היא באמצעות ציון השם הNamespace המקונן המלא:
ההגדרה:
|
|
שקולה להגדרה:
|
|
האחרון הוא השימוש היותר נפוץ בNested namespaces.
אופן השימוש המומלץ הוא לחלק את הקוד לתת Namespaceים לפי מבנה הקבצים בפרויקט:
אם יש לנו בפרויקט תיקיות, עדיף שכל תיקייה תהווה תת Namespace של הNamespace בו היא נמצאת.
זו גם ההתנהגות הדיפולטית בVisual Studio – כאשר נוסיף מחלקה לתיקייה, הNamespace הדיפולטי שהיא תקבל יהיה תתNamepsace של הNamespace בו חיה התיקייה, ששמו של התת Namespace יהיה השם של התיקייה.
המשך יום מקונן טוב