PDA

View Full Version : فلسفه استفده از property



مهدی فهمیده غلامی
یک شنبه 18 مرداد 1383, 08:17 صبح
property چی هستند و چه خاصیتی دارند؟
کد زیر را درنظر بگیرد .
در این ما چه سودی از مقدار دهی ویژگی ها به این روش می بریم


using System;

namespace ex03
{
/// <summary>
/// Summary description for clsDate.
/// </summary>
public class clsDate
{
public clsDate()
{
//
// TODO: Add constructor logic here
//
}

public string currentSystemDate
{
get
{
return System.DateTime.Today.ToString() ;
}
}


}
}
کد از کتاب C# نوشته جان شارپ است

rsalimian
دوشنبه 19 مرداد 1383, 13:09 عصر
property همان خصوصیاتی است که یک آبجکت دارد. مفاهیم class و کپسوله سازی در همین کتابی که گفته اید مفصلا نوشته شده. فهمیدن این بخش کار شما را راحت میکند.


در این ما چه سودی از مقدار دهی ویژگی ها به این روش می بریم
در مثال فوق٬ وقتی شما یک آبجکت از این کلاس بسازید می تونید بکمک متد currentSystemDate تاریخ جاری سیستم را بدست بیاورید. البته شما می توانید این متد را به هر شکلی که بخواهید تعریف کنید و خروجی دلخواه را تولید کنید

ParsaNM
چهارشنبه 17 فروردین 1390, 13:00 عصر
شايد يکي از بهترين اسفاده ها از property اين باشه که ميشه يه متغير داشت که ورودي و خروجيش توسط يک متد تعريف ميشن ... !

teardrop
چهارشنبه 17 فروردین 1390, 23:39 عصر
به نام خدا
اولا خصوصیت یک دید مهندسی نرم افزار می باشد. و هر کسی که میخواد مهندسی کار کنه این کار رو انجام میده.
دوما خصوصیت به ما اجازه کنترل بر روی داده ها رو میده و ...

tooraj_azizi_1035
دوشنبه 22 فروردین 1390, 12:44 عصر
سلام،
قبل از اینکه Property وجود داشته باشه از فیلد استفاده می شد. اما مشکلاتی رو برای کلاس به وجود می آورد. دسترسی به اون فیلد یا می بایست منع می شد یا دسترسی آزاد می شد. اگر دسترسی منع می شد باید یه متد می نوشتیم تا با کمک اون فیلد رو مقدار دهی کنیم اگر هم دسترسی آزاد بود برنامه نویس می تونست هر مقداری رو که دلش می خواست (در رنج معتبر) به فیلد بده که در برخی مواقع موجب تخریب وضعیت شیئ می شد. به همین دلیل Property ها به وجود اومدن تا اینت رفتار رو مدیریت کنن. در قسمت get مقداری رو که باید فیلد برگردونه رو قرار می دیم (یعنی همون کاری که باید با یه تابع انجام می دادیم) و در قسمت set هم اینکه چه مقداری بگیره رو تعیین می کردیم. ویژگی های دیگه ای مثل readonly بودن یا writeonly بودن هم قابلیت منحصر به فرد محسوب می شن که نا قبل از Property ها امکان پذیر نبود. :قلب: