• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

partial class چیست ؟

sasan

Banned
مفهموم partial class چیست ؟

این مفهموم از زمان وارد شدن .net 2 به بعد مطرح شد به این ترتیب که شما در یک فضای نام یکسان namespace می توانید اطلاعات کلاستتون را در دو یا بیشتر از دو فایل جداگانه قرار دهید . مشروط بر اینکه فضای نام namespaceهمه فایلها یکسان باشد . به مثال زیر دقت کنید . کلاسی داریم به نام myclass که می خواهیم آن را در 2 فایل تقسیم کنیم فایل اول به نام someclass و فایل دوم به نام moreclass است .

خوب همانطور که گفتم باید حتما فضای نام namespace هر دو فایل یکسان باشد حالا محتویات هر دو فایل را در زیر می آوریم

فایل someclass











Namespace space1{




public partial class myClass
{
public int P1 { get; set; }
}

}






فایل moreclass






Namespace space1{




public partial class myClass
{
public int P2 { get; set; }




public void ala()




{

//دستورات متد




}





}

}

همانطور که مشاهده می کنید بخشی از کد های کلاس myClass در یک جا و ادامه کدها در قسمت دیگری آمده است. از این ویژگی می توان برای گسترش کلاس ها استفاده کرد اما هر دو در یک فضای نام namespace قرار گرفته اند .

اما حالا که با این مفهوم آشنا شدیم سوال اساسی این است که فایده این روش در کجاست و چرا استفاده می کنیم ؟

1- افزایش خوانایی در کلاس های بسیار زیادی است

2- اگر شما بر روی کلاس پیچیده ای کار می کنید براحتی می توانید آن را بین چند نفر تقسیم کنید و هر کدام از افراد در فایلی جداگانه ، کدهای کلاس خود را می نویسد .

3- شما براحتی می توانید در جاهایی که برخی کدهای بصورت اتوماتیک تولید می شوند ،مثل کد فرمهای تحت ویندوز (Windows Forms, Web Service) ، را از کدهایی که شما بصورت دستی می نویسید را تفکیک کنید . در نتیجه اعمال تغییرات بسیار راحتتر می شود

4- در تعریف کلاسها می توانیم بخش از کلاس ما که دارای خصوصیات private را از بخش که دارای خصوصیات public باشه را تفکیک می کنیم این کار به خوانایی و روان فهمیدن کلاس کمک فراوانی می کند.

5- در تعریف interface ها شما می توانید تعریف interface را در یک فایل و رابطه ها و اعمال و پیاده سازیهای آن را در فایلی دیگر قرار دهید .
 
بالا