WEBVTT

00:00.110 --> 00:00.800
خوش آمدید دوباره.

00:00.800 --> 00:05.450
در این ویدیو می‌خواستم کلمه کلیدی ویژگی‌های خودکار  
پیاده‌سازی‌شده 
(auto implemented properties)
 را به شما نشان بدهم.

00:05.450 --> 00:08.750
prop چون موضوع این است که کاری که ما اینجا با کلیدواژه 
 انجام دادیم،

00:08.750 --> 00:14.060
برای مثال، این یک ویژگی خودکار پیاده‌سازی‌شده است، درست است.

00:14.060 --> 00:15.770
یعنی به طور خودکار پیاده‌سازی شده.

00:15.770 --> 00:19.550
اما چیزی که من واقعاً می‌خواهم به آن نگاه کنم ویژگی‌های   هستند.(read only)فقط‌خواندنی

00:19.550 --> 00:28.310
پس چطور می‌توانم یک ویژگی بسازم که مثلاً آی‌دی را به بیرون نمایش دهد اما 

00:28.310 --> 00:29.270
فقط‌خواندنی باشد؟

00:29.270 --> 00:32.870
set خب، این کار با این است که بگوییم 
 وجود ندارد.

00:32.870 --> 00:33.590
همین.

00:33.590 --> 00:37.370
پس ناگهان این یک ویژگی فقط‌خواندنی می‌شود.

00:37.370 --> 00:40.490
دارد.getter به همین سادگی است چون فقط 

00:40.490 --> 00:43.640
اگر بخواهید چیزی را بگیرید، یعنی آن را می‌خوانید.

00:43.640 --> 00:49.970
پس حالا فقط می‌توانید آن را بخوانید چون نمی‌توانید مقدار بدهید،  اینجا پیاده‌سازی نشده است.setterچون 
 

00:49.970 --> 00:54.020
خب، چه زمانی از این ویژگی فقط‌خواندنی استفاده می‌کنید؟

00:54.020 --> 00:56.690
واقعیت این است که شما زمانی استفاده می‌کنید

00:56.690 --> 01:02.600
که بخواهید مطمئن شوید چیزی مثل آی‌دی قابل تغییر نیست، اما می‌توان آن را خواند.

01:02.600 --> 01:07.760
حالا مشکل اینجاست که هنوز پیاده‌سازی نکرده‌ایم که واقعاً این آی‌دی را برگردانیم، پس باید

01:07.760 --> 01:08.720
آن را تغییر دهیم.

01:08.720 --> 01:10.160
می‌دانید چطور باید انجام داد؟

01:10.160 --> 01:12.440
خب امیدوارم ویدیو را متوقف کرده باشید و امتحان کرده باشید.

01:12.440 --> 01:18.350
در اصل باید اینطور انجام دهیم که id را برگردانیم.

01:18.440 --> 01:26.420
حالا ما این getter را پیاده‌سازی کرده‌ایم که هر زمان از کلاس دیگری به ویژگی ID دسترسی داشته باشیم، این آی‌دی را برمی‌گرداند.

01:29.000 --> 01:31.070
خب چرا این مهم است؟

01:31.070 --> 01:40.370
این مهم است چون در مورد آی‌دی‌ها، شما نیاز دارید روشی داشته باشید برای شناسایی یک شی‌ء با چیزی، و

01:40.400 --> 01:47.120
در این مورد با آی‌دی، چون این شناسه یکتایی است که استفاده می‌کنیم.

01:47.120 --> 01:47.780
خب.

01:47.780 --> 01:55.490
و به این طریق می‌توانیم در فایل برنامه خود، چیزی را با آی‌دی‌اش شناسایی کنیم.

01:55.490 --> 02:00.590
و حالا واقعاً می‌توانیم به customer.id دسترسی پیدا کنیم.

02:00.920 --> 02:01.640
خب.

02:01.640 --> 02:09.230
حالا می‌بینید که می‌توانیم تلاش کنیم مقداری به آن نسبت دهیم، اما کار نمی‌کند چون ID یک ویژگی فقط‌خواندنی است

02:09.230 --> 02:10.670
و نمی‌توان مقداری به آن داد.

02:10.670 --> 02:14.900
این فقط‌خواندنی است، اما حالا می‌توانیم آی‌دی را بگیریم.

02:14.900 --> 02:26.900
برای مثال با استفاده از Console.WriteLine بنویسیم «آی‌دی مشتری ۳ برابر است با» و سپس customer3.id را اضافه کنیم.

02:27.140 --> 02:36.320
پس حالا واقعاً از بیرون به آی‌دی دسترسی داریم چون آن را با ویژگی 
public خودمان نمایش داده‌ایم.

02:36.320 --> 02:37.370
خب.

02:37.370 --> 02:38.000
پس مشتری ۳ آی‌دی ۲ دارد، مشتری ۱ آی‌دی ۰ دارد و همینطور ادامه دارد.

02:43.310 --> 02:48.620
این به خاطر چیزی است که متغیر استاتیک ما یا همان فیلد استاتیک مدیریت می‌کند.
