PDA

View Full Version : سوال: دلیل قانع کننده برای استفاده از Property؟



modirmasool
جمعه 12 شهریور 1389, 22:24 عصر
دوستان میشه بگین چرا باید از Property استفاده کنیم در حالی که با متغیرها و روال ها میتونیم خیلی راحت تر به نتیجه برسیم؟
ممنون.

ricky22
جمعه 12 شهریور 1389, 22:47 عصر
http://blogs.msdn.com/b/abhinaba/archive/2005/09/22/472706.aspx
مهمترین قسمت همین رویداد Get و SEt هست به نظر من.

modirmasool
جمعه 12 شهریور 1389, 22:58 عصر
ممنون
ایناشو میدونم ولی کلا یه جوریه!:لبخند: چطوری بگم کلا اون put و get اش رو با تابع هم میشه انجام داد دیگه.

ricky22
جمعه 12 شهریور 1389, 23:10 عصر
get و Set
ارث بری
override کردن
برای یک prop با 1000 بار استفاده هزار بار call کردن تابع؟
------------------
یعنی چجوریه؟

modirmasool
جمعه 12 شهریور 1389, 23:22 عصر
این ارث بریشو که چون هنوز تازه همین یه ساعت پیش شروع کردم به یادگیری خیلی چیزی نمیدونم ولی در کل مگه وقتی برای یه کلاس از ارس بری استفاده می کنیم، دیگه توابع عمومیشون در دسترسمون نیستن؟

اون یکی آخریشو باهاتون موافقم چون کدهامون قشنگتر میشن:لبخند: البته فقط برای مواقعی که Read\Write باشه.

salehbagheri
شنبه 13 شهریور 1389, 04:41 صبح
استفاده از Property ها یکی از اصول برنامه نویسی شی گراست.

شما تصور کن یه برنامه دارین که با اتومبیل ها سروکار داره! هر اتومبیل ویژگی های خاص خودش رو داره، مثل نام، شرکت، رنگ و ... بنابراین یک کلاس به نام Car ایجاد میکنید و خصایص یا Property های مذکور رو در اون تعریف میکنید.

حالا شما میخواهید لیستی از اتومبیلها رو داشته باشید که با اونها کار کنید، به راحتی میتونید این خصایص رو در Property های کلاس Car ذخیره کنید و سپس ازش استفاده کنید. شما در کدوم متغیر میتونید این ها ذخیره کنید که بشه بعداً ازش استفاده کرد؟ آیا روش ساده تری در دست دارید؟

modirmasool
شنبه 13 شهریور 1389, 05:00 صبح
ممنون. یه چیزایی داره دستم میاد. فقط پیروی فرمایش شما، تصویر زیر رو ببینین:
طبق تصویر ما هم میتونیم Property ها رو ارث ببریم و هم متدها رو.که خوب اونطور که من فهمیدم توابع و روال ها جزو متدها هستن.
ممنون میشم بیشتر توضیح بدین چون فکر کنم این بحثش مهم باشه.

salehbagheri
شنبه 13 شهریور 1389, 05:23 صبح
ببینید! متدها و روال ها چیزی رو در خودشون ذخیره نمیکنند! اما Property ها قابلیت ذخیره اطلاعات رو دارند.

شما یک اتومبیل رو با استفاده از کلاس Car ایجاد کردید که رنگش سبزه، سرعتش 200 Kmh هست و اسمش پژو ...

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

اما شما در متد Accelerate نمیتونید چیزی رو ذخیره و در جایی دیگر بازیابی کنید، تنها به اتومبیل فرمان میدهید که شتاب بگیره!

اینها ربط زیادی به Inheritance نداره ...

modirmasool
شنبه 13 شهریور 1389, 12:04 عصر
ببینید! متدها و روال ها چیزی رو در خودشون ذخیره نمیکنند! اما Property ها قابلیت ذخیره اطلاعات رو دارند.

شما یک اتومبیل رو با استفاده از کلاس Car ایجاد کردید که رنگش سبزه، سرعتش 200 Kmh هست و اسمش پژو ...

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

اما شما در متد Accelerate نمیتونید چیزی رو ذخیره و در جایی دیگر بازیابی کنید، تنها به اتومبیل فرمان میدهید که شتاب بگیره!

اینها ربط زیادی به Inheritance نداره ...

آها حالا گرفتم. ما اینجا داریم بازم غیر مستقیم دوباره از Property استفاده می کنیم.:تشویق:

خیلی ممنون.