مفهموم 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- افزایش خوانایی در کلاس های بسیار زیادی است/span>>/>/span>>/>
2- اگر شما بر روی کلاس پیچیده ای کار می کنید براحتی می توانید آن را بین چند نفر تقسیم کنید و هر کدام از افراد در فایلی جداگانه ، کدهای کلاس خود را می نویسد .
3- شما براحتی می توانید در جاهایی که برخی کدهای بصورت اتوماتیک تولید می شوند ،مثل کد فرمهای تحت ویندوز (Windows Forms, Web Service/span>>/>) ، را از کدهایی که شما بصورت دستی می نویسید را تفکیک کنید . در نتیجه اعمال تغییرات بسیار راحتتر می شود
4- در تعریف کلاسها می توانیم بخش از کلاس ما که دارای خصوصیات private را از بخش که دارای خصوصیات public باشه را تفکیک می کنیم این کار به خوانایی و روان فهمیدن کلاس کمک فراوانی می کند.
5- در تعریف interface ها شما می توانید تعریف interface را در یک فایل و رابطه ها و اعمال و پیاده سازیهای آن را در فایلی دیگر قرار دهید .
سلام
توجه داشته باشید که Partial برای Struct ها و Interface ها نیز استفاده کرد و یکی از زیبایی های آن در زیر کلاس هاست
همچنین در هنگام فایل کلاس های Partial همگی تبدیل به یک کلاس (اسمبلی)می شوند.