فضای نام (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) در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.