فضای نام (Namespace) در زبان سی شارپ – آموزش زبان سی شارپ

csharp namespaces 4545 تصویر

فضای نام (Namespace) در زبان سی شارپ

فضای نام (namespace) برای این طراحی شده است تا مجموعه نام ها را از یک دیگر جدا کند. نام هایی که در یک فضای نام تعریف می شوند با نام های مشابهی که در فضای نام دیگری تعریف می شوند، تداخلی نمی کند.

تعریف فضای نام

به منظور تعریف یک فضای نام در زبان سی شارپ باید از کلمه کلیدی namespace استفاده کنید. مانند نمونه زیر:

namespace namespace_name {
   // code declarations
}

با استفاده از عملگر (.) می توان به محتوای تعریف شده در داخل یک فضای نام دسترسی داشت.

مانند نمونه زیر:

namespace_name.item_name;

مثال زیر نحوه استفاده از فضای نام را نشان می دهد:

using System;
namespace first_space {
   class namespace_cl {
      public void func() {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space {
   class namespace_cl {
      public void func() {
         Console.WriteLine("Inside second_space");
      }
   }
}
class TestClass {
   static void Main(string[] args) {
      first_space.namespace_cl fc = new first_space.namespace_cl();
      second_space.namespace_cl sc = new second_space.namespace_cl();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

امتحان کنید

زمانی که کد بالا توسط کامپایلر سی شارپ اجرا شود، نتیجه زیر را تولید خواهد کرد:

Inside first_space
Inside second_space

کلمه کلیدی using

کلمه کلیدی using محتوای تعریف یک در یک فضای نام را وارد برنامه می کند. برای مثال در اکثر برنامه ها فضای نام System را مشاهده می کنید که با استفاده از کلمه کلیدی using اعلان شده است. کلاس Console در این فضای نام قرار دارد. زمانی که این فضای نام اعلان شده باشد، فقط می نویسیم:

Console.WriteLine ("Hello there");

اما اگر اعلان نشده باشد، باید به این صورت بنویسیم:

System.Console.WriteLine("Hello there");

همچنین می توانید با استفاده از کلمه کلیدی using از اضافه کردن فضای نام به اول نام کلاس ها جلوگیری کنید.

برای درک بهتر مثال بالا را به صورت زیر تغییر می دهیم:

using System;
using first_space;
using second_space;
namespace first_space {
   class abc {
      public void func() {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space {
   class efg {
      public void func() {
         Console.WriteLine("Inside second_space");
      }
   }
}   
class TestClass {
   static void Main(string[] args) {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Inside first_space
Inside second_space

فضای نام تو در تو

در زبان برنامه نویسی C# می توانید یک فضای نام را در داخل فضای نام دیگری تعریف کنید:

namespace namespace_name1 {
   
   // code declarations
   namespace namespace_name2 {
      // code declarations
   }
}

به منظور دسترسی به فضای نام داخلی باید از عملگر (.) استفاده کنید. مثال زیر نحوه تعریف و استفاده از فضای نام تو در تو را نشان می دهد:

using System;
using first_space;
using first_space.second_space;
namespace first_space {
   class abc {
      public void func() {
         Console.WriteLine("Inside first_space");
      }
   }
   namespace second_space {
      class efg {
         public void func() {
            Console.WriteLine("Inside second_space");
         }
      }
   }   
}
class TestClass {
   static void Main(string[] args) {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Inside first_space
Inside second_space

نوشته فضای نام (Namespace) در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *