View Full Version : Partial Class
  
habib_asadpoor
شنبه 02 مرداد 1389, 01:18 صبح
سلام
 
من در مورد Partial class ها می خواستم بدونم لطفا من رو راهنمایی کنید.
کاربرد و نمونه مثال 
 
از لطف شما دوستان کمال تشکر را دارم
:متفکر:
amir-yeketaz
شنبه 02 مرداد 1389, 01: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, 12: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  را در یک فایل و رابطه ها و اعمال و پیاده سازیهای آن را در فایلی دیگر قرار دهید .
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.