propertyدر این ویدیو می‌خواهیم به ها نگاه کنیم.
property ها بخش مهمی از کپسوله‌سازی هستند که خود بخش مهمی از برنامه‌نویسی شیءگرا است.
برنامه‌نویسی.
و کاری که می‌کند این است که متغیرها را از دسترسی بیرونی محافظت می‌کند.
ما قبلاً متغیرها را از دسترسی بیرونی محافظت کرده‌ایم.
ولی این کافی نیست.
ما می‌خواهیم کنترل داشته باشیم که این متغیر، مثلاً model، چطور از بیرون دسترسی پیدا کند
و چطور تغییر کند.
چون الان نه می‌توانیم از بیرون به آن دسترسی بگیریم و نه تغییرش دهیم.
می‌توانیم امتحان کنیم.
مثلاً بگوییم Audi نقطه آندرلاین model و چیزی به آن اختصاص دهیم.
ولی این خطا می‌دهد. اگر بروی روی آن، می‌گوید:
car.model به خاطر سطح حفاظت غیرقابل دسترسی است.
خب سطح حفاظت چیست؟
است.privateالان سطح حفاظت
این کلیدواژه سطح حفاظت را مشخص می‌کند.
یعنی این متغیر فقط داخل همان کلاس تغییر کندprivate.
publicاگر آن را کنم، خطا ناپدید می‌شود چون الان می‌توانم تغییرش دهم.
نیست.privateچون دیگر
است.publicحالا
Program.csپس حالا کلاس‌های بیرونی مثل به آن دسترسی دارند.
اما مشکل کجاست؟
این یک روش برنامه‌نویسی بد است.
این کاری نیست که باید بکنیم.
ایده کپسوله‌سازی و به طور کلی شیءگرایی این است که راه‌های تمیزتری برای تغییر داشته باشیم.
چرا؟
modelچون باید بتوانیم مشخص کنیم متغیر چه زمانی و چطور دسترسی داشته باشد.
propertyاینجا می‌توانیم یک اطرافش بسازیم.
خب چطور انجامش دهیم؟
استفاده کنیم.propertyمی‌توانیم از چیزی به نام
خودمان را اینطور بسازیم.propertyمی‌توانیم
استفاده کنیم و تب بزنیم.propاز کلید
بعد نوع داده را مشخص کنیم.
استفاده می‌کنم.stringمن
دوباره تب می‌زنیم.
بعد اسم می‌دهیم.
propertyمی‌بینید با حرف بزرگ شروع می‌شود.
می‌گذارم.Modelمن اینجا
است.propertyپس این یک
اینجا get و set داریم یعنی می‌توانیم مشخص کنیم property چطور گرفته یا تنظیم شود.
چطور بازنویسی شود.
propertyراه‌های مختلفی هست که فیلد توسط محافظت شود.
Quick Actionsمی‌توانید راست کلیک کنید و را بزنید.
روی encapsulate بروید و use property را انتخاب کنید.
دیدید چه کرد؟
شاید ندیدید.
دیدنش سخت است.
encapsulate field و use propertyولی اگر روی آن بروید و را بزنید،
این کد ساخته می‌شود.
lambda expressionاین کد از استفاده می‌کند.
است.lambda expressionاین یک
modelولی در اصل می‌گوید هر وقت را خواستید،
به شما model می‌دهم. هر وقت model را تنظیم کنید،
هر مقداری بدهید، آن را به عنوان model می‌گذارم.
این قبلی را پاک کنم، اینطور می‌شود.
خب.
modelو می‌بینید کدم خودکار من را محافظت کرد.
را. modelمتغیر عضو خصوصی
اینجا هم آن را پوشاند.
من را بازنویسی کرد._modelپس
این بخشی از کپسوله‌سازی است که مطمئن شویم متغیر محافظت شده
داریم.get و setو کنترل کامل روی
پس اینجا می‌توانیم مشخص کنیم.
گام به گام به آن می‌رسیم.
refactoringولی فقط خواستم نشان دهم سریع می‌شود با این کار را کرد.
brandهمین کار را با هم می‌کنیم.
اینجا راست کلیک کنید.
Quick Actions را بزنید و بگویید encapsulate field brand و use property.
حالا این کد ساخته شد. مثل model است.
فقط الان یک property به نام brand داریم.
public است.
string است.
_brandوقتی بخواهید بگیرید، را می‌دهم. وقتی بخواهید تنظیم کنید،
brandهر مقداری بدهید در متغیر عضو ذخیره می‌کنم.
_brandو اینجا می‌بینید قبلاً گفته بودید را بازنویسی کنید.
ولی حالا تغییر کرد و گفت:
شما به متغیر خصوصی دسترسی ندارید.
فقط property خودش دسترسی دارد.
فقط property brand می‌تواند brand را تغییر دهد.
_brandجای دیگری نباید مستقیم را تغییر دهیم.
propertyاگر بخواهید، باید از این محافظ یعنی عبور کنید.
brandچون تعیین می‌کند چه کسی می‌تواند وارد شود.
nullمثلاً می‌توانیم بگوییم فقط اگر مقداری غیر بدهید قبول می‌کنم.
یا فقط اگر رشته‌ای معتبر باشد، مثلاً طولش حداکثر ده کاراکتر باشد.
فقط در آن صورت ورودی شما را قبول می‌کنم. این چیزی است که می‌توانیم خودمان تعریف کنیم.
و این همان چیزی است که در ویدیوی بعدی می‌بینیم.
پس تا آن موقع.