namespace CSharpOOP.Entities
{
class Person
{
}
}
در این حالت، زمانی که شما در فایل Program.cs و متد Main، تصمیم دارید از روی کلاس Person شئ بسازید، باید آدرس کامل فضای نام را نیز هنگام ساخت شئ مشخص کنید، زیرا فضای نام کلاس های Program و Person دیگر یکسان نیستند:
CSharpOOP.Entities.Person person = new CSharpOOP.Entities.Person();
اما در اینجا نکته ای وجود دارد، چون ابتدای فضای نام کلاس های Program و کلاس Person یکسان می باشد، یعنی فضای نام Entities زیر مجموعه CSharpOOP قرار دارد و کلاس Program نیز در فضای نام CSharpOOP تعریف شده، می توان از نوشتن قسمت اول فضای نام یعنی CSharpOOP خودداری کرد:
Entities.Person person = new Entities.Person();
دقت کنید، اگر فضای نام را برای ایجاد شئ ننویسیم، با پیغام خطا مواجه خواهیم شد. اما راهی وجود دارد که آدرس کامل کلاس را ننویسیم، برای اینکار از دستور using استفاده می کنیم که در بالا نیز به آن اشاره شد. دستور using کلیه کدهای داخل یک فضای نام را داخل فضای نام جاری قابل دسترس می کند. برای مثال بالا، کافیست در قسمت using فایل Program.cs، دستور زیر را بنویسیم:
using CSharpOOP.Entities;
با نوشتن دستور بالا، دیگر نیازی به نوشتن آدرس فضای نام هنگام ساخت شئ نخواهد بود. نمونه دیگر استفاده از دستور using، استفاده از دستورات کلاس Console می باشد که در قسمت های قبل با آن زیاد کار کردیم. کلاس Console داخل فضای نام System که فضای نام پایه کلیه کلاس های دات نت می باشد تعریف شده. اما بدلیل اینکه در ابتدای فایل Program.cs دستور using System; نوشته شده است، کافیست تنها نام کلاس Console را بنویسیم و نیازی به نوشتن آدرس کامل آن به صورت System.Console نمی باشد.
شما می توانید داخل یک فایل چندین کلاس را تعریف کنید. برای مثال، در فایل Program.cs می توانید بعد از اتمام کد کلاس Program.cs، اقدام به تعریف کلاس Person نمایید:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CSharpOOP.Entities;
namespace CSharpOOP
{
class Program
{
static void Main(string[] args)
{
Entities.Person person = new Entities.Person();
}
}
class Person
{
}
}
اما بهتر است برای هر کلاس، یک فایل جداگانه در نظر بگیرید تا ساختار مناسب برای پروژه ای که تصمیم به انجام آن دارید حفظ شود.
یکی دیگر از قابلیت های موجود در Solution Explorer، قابلیت پوشه بندی فایل ها داخل پروژه می باشد. برای مثال، می توانید کلاس های مربوط به موجودیت های برنامه را داخل یک پوشه قرار دهید. برای اینکار، بر روی پروژه راست کلیک کرده، از قسمت Add گزینه New Folder را انتخاب کنید. با اینکار پوشه جدیدی به پروژه شما اضافه می شود که می توانید برای آن یک نام دلخواه انتخاب کنید:
i7
در صورتی که ابزار Resharper را نصب کرده باشید، با زدن کلید های Alt+Insert بر روی پروژه داخل Solution Explorer از منوی ظاهر شده گزینه New Folder را برای افزودن پوشه جدید انتخاب کنید.
پس از تعریف پوشه، با انتخاب آن و تکرار مراحل قبلی برای ایجاد کلاس، می توانید داخل آن پوشه یک فایل جدید ایجاد کنید. برای مثال، پوشه ای با نام Entities داخل پروژه تعریف کرده و کلاسی با نام Car داخل آن تعریف کنید. بعد از اینکار محتویات فایل شما به صورت زیر خواهد بود:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpOOP.Entities
{
public class Car
{
}
}
به یک نکته توجه کنید که فضای نام یا namespace کلاس Car به صورت خودکار CSharpOOP.Entities انتخاب شده است، زیرا کلاس داخل پوشه Entities که در پروژه CSharpOOP قرار دارد اضافه شده. در صورتی که شما داخل یک پوشه، پوشه جدیدی اضافه کرده و داخل آن یک کلاس اضافه کنید، آدرس فضای نام مبتنی بر نام آن پوشه انتخاب خواهد شد. پس نکته بعدی که باید مد نظر داشته باشید، زمانی که قصد دارید کدهای خود را بوسیله فضاهای نام دسته بندی کنید، حدالامکان برای آنها پوشه ایجاد کنید، اجباری به اینکار نیست، اما برای حفظ ساختار و نظم پروژه اینکار توصیه می شود.
برچسب:
نویسنده: هستی امینی