PDA

View Full Version : سوال: چرا در property فقط خواندنی باز هم باید نوع برگشتی داشت؟!



saman2
شنبه 13 اسفند 1390, 13:25 عصر
با سلام به همه برنامه نویسانی که به بقیه هم کمک می کنن...
یک سئوال شاید مبتدی، شایدم عجیب برام پیش اومده. البته فکر کنم عنوان خودش گویاست. سئوالم اینه که چرا توی خاصیت هایی که بصورت فقط خواندنی ( با get) تعریف می کنیم، باز هم الزاما باید نوع برگشتی خاصیت رو مشخص کنیم؟(البته این برداشت من بود،اگر اینطور نیست دوستان لطفا راهنمایی کنن).

jeson_park
شنبه 13 اسفند 1390, 13:36 عصر
سلام
منظورتون رو درست متوجه نشدم
شما مگه نمیگی فقط خواندنی؟؟
پس باید این خواصیت خونده بشه (این کار از طریق برگندوندن مقدار اون خاصیت انجام میشه)
به این مثال دقت کنید


class Person
{
private string name; // the name field
public string Name // the Name property
{
get
{
return name;
}
}
}


خب person یه خواصیتی هست که فقط خوندنی درسته؟؟
باید مقدار متغییر name از طریق این خاصیت خونده شه
خب این کار با برگردوندن مقدار name انجام میشه!

saman2
یک شنبه 14 اسفند 1390, 15:42 عصر
ممنون! من منظورم اینه که در چنین شرایطی خب طبیعتا مشخصه که نوع برگشتی خاصیت چیه. (از متغیرش مشخص میشه). پس فلسفه اعلام اجباری نوع خاصیت ما چی میتونه باشه؟

Hybrid
یک شنبه 14 اسفند 1390, 17:14 عصر
ممنون! من منظورم اینه که در چنین شرایطی خب طبیعتا مشخصه که نوع برگشتی خاصیت چیه. (از متغیرش مشخص میشه). پس فلسفه اعلام اجباری نوع خاصیت ما چی میتونه باشه؟

حرف شما هم درسته ، ولی فکر کن وقتی که میخوای از این خاصیت فقط خواندنی استفاده کنی ، ولی میبینی که داخل intellisense چیزی در مورد مقدار بازگشتی نمینویسه ، اونوقت شما مجبورید برید داخل کلاس و ببینید نوع اون فیلد چی هست ،آیا این کار باعث اتلاف وقت نمیشه؟

shadi khanum
یک شنبه 14 اسفند 1390, 20:53 عصر
دوست عزیز اگه موقع تعریف prop مشخص نکنی که خروجی این prop از چه نوعی VS چجوری debug کنه که مقدار property رو تو متغیر نوع درستی ریختید یا نه؟
property از این لحاظی که اینجا مورد بحثه ، دقیقا مثل field (متغیره) که قرار باشه تو برنامه فقط از مقدارش استفاده کنی .به نظرت میشه نوعش رو مشخص نکنی که چیه؟

saman2
دوشنبه 15 اسفند 1390, 13:55 عصر
جوابای شما دوستان همه آموزنده است،اما در پاسخ (مخصوصا به آخرین پست) باید بگم اگر دقت کنید من در اولین پست گفته بودم که منظورم خاصیت فقط خواندنی هست که طبیعتا ما فقط میخوایم مقداری رو برگردونیم و نوع اون مقدار رو هم قبلش اعلام کردیم و نکته دیگه هم اینه که در خاصیتها در get,set معمولا با یک متغیر قبلا تعریف شده کار میشه که طبیعتا نوع اون متغیر هم قبلا مشخص شده. قاعدتا مایکروسافت دلیلی برای تاکید بر مشخص کردن نوع برگشتی خاصیت داره که من میخواستم از اون مطلع بشم (البته شاید پاسخ بین همینایی باشه که شما مطرح کردید)...