soheil moonesi
soheil moonesi
خواندن ۲ دقیقه·۱۰ ماه پیش

C# namespace

Namespaces are used to organize the classes. It helps to control the scope of methods and classes in larger .Net programming projects. In simpler words you can say that it provides a way to keep one set of names(like class names) different from other sets of names. The biggest advantage of using namespace is that the class names which are declared in one namespace will not clash with the same class names declared in another namespace.

خوب به طور خلاصه از namespace ها برای سازماندهی کردن کلاس ها استفاده میشه. بزارید با مثال بریم جلو

فرض کنید که دو کلاس NormalCar و RacingCar داریم و داخل هر دو این ها میخوایم یک کلاس Break تعریف کنیم

namespace project { public class Break{ } }
namespace project { public class Break { } }

این جا با این ارور مواجه میشیم :

Duplicate definition 'Project.Break'. Possibly missing keyword 'partial'

که میگه توی namespace - Project دو تا کلاس Break تعریف شده که همین باعث ارور شده و برای راه حل احتمالی هم گفته که اگر از partial استفاده کنید اوکی میشه.

ولی اگر منظور این باشه که این دو کلاس کاملا از هم جدا هستند و مرتبط به هم نیستند باید بیایم و اسم namespace یکی رو تغییر بدیم، اینطوری ارور برطرف میشه.

namespace project { public class Break{ } }
namespace project2 { public class Break { } }

حالا مورد بعدی اینه اگر بخوایم جداگانه از هر کدوم از اینها استفاده کنیم باید چی کار کنیم ؟ باید اسم namespace با . استفاده کنیم. اینطوری:

project2.Break project2Break = new project2.Break();

یک قابلیت دیگه هم که داریم اینه که میتونیم namspace های تو در تو یا nested داشته باشیم.

namespace Allproject { namespace Project1{ } }

همین مورد بالا رو هم میتونیم با . هم بنویسیم :

namespace Allproject.Project1{ }

نکته : میتونیم به جای این که هر جایی بخوایم از یک namespace دیگه ای استفاده کنیم از . استفاده کنیم بیایم در بالای کد با نوشتن using و بعد نوشتن اون namespace کار خودمون رو راحت کنیم.

پیشنهاد میشه که اسم گذاری 3 بخشی انجام بشه بخش اول اسم کمپانی، بخش دوم اسم پروژه و بخش سوم سرویسی که داریم براش کد میزنیم مثلا سرویس LOGIN

namespaceسی شارپ
C# enthusiast
شاید از این پست‌ها خوشتان بیاید