PDA

View Full Version : Partial Class



habib_asadpoor
شنبه 02 مرداد 1389, 00:18 صبح
سلام

من در مورد Partial class ها می خواستم بدونم لطفا من رو راهنمایی کنید.
کاربرد و نمونه مثال

از لطف شما دوستان کمال تشکر را دارم
:متفکر:

amir-yeketaz
شنبه 02 مرداد 1389, 00:51 صبح
میتونید با این کار کلاستون رو یه جورایی بخش بخش کنید ...
مثلا بخش منطق کلاس رو تو یه patial و بخش طراحی رو تو یه partial دیگه

مثال خیلی خیلی ساده :
این یه کلاس partial به نام A :

partial class A
{
public int intA;
}
با یه فیلد intA

و اینم یه قسمت دیگه از کلاس A :

partial class A
{
public int intB;
}
خوب حالا اگه از کلاس A شی بسازید و بخواین به فیلداش دسترسی داشته باشین میبینید که هر دو فیلد intA و intB موجوده چون در اصلا هر دو تو یه فایل قرار دارن و از یه کلاسن که به دوبخش تقسیم شدن ...
نمونه ی کاربردیشم که تو WinApp موجوده که قسمت طراحی و مقداردهی به کنترل ها در یه partial دیگست ...

امیدوارم که مفید واقع شده باشه ...
موفق باشید

alawiala
سه شنبه 06 مهر 1389, 11:03 صبح
مفهموم 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 را در یک فایل و رابطه ها و اعمال و پیاده سازیهای آن را در فایلی دیگر قرار دهید .