WEBVTT

00:00.110 --> 00:01.070
خوش برگشتید.

00:01.070 --> 00:03.530
در این ویدیو به بررسی فیلدها می‌پردازیم.

00:03.530 --> 00:09.920
فیلدها متغیرهایی هستند که خارج از متدها و داخل یک کلاس ایجاد می‌شوند.

00:09.920 --> 00:14.420
پس می‌توانید متغیرها را در انواع مختلفی از مکان‌ها ایجاد کنید.

00:14.420 --> 00:14.810
درست است.

00:14.810 --> 00:16.790
می‌توانید آن‌ها را داخل متدها ایجاد کنید.

00:16.790 --> 00:21.350
می‌توانید آن‌ها را حتی خارج از کلاس‌ها ایجاد کنید، هرچند کمی پیچیده‌تر است.

00:21.350 --> 00:24.710
و می‌توانید آن‌ها را داخل کلاس‌ها اما خارج از متدها ایجاد کنید.

00:24.710 --> 00:26.390
اجازه دهید با این مثال نشان دهم.

00:26.390 --> 00:30.380
Myresult برای مثال ما این متغیر 
 را داریم، درست است؟

00:30.380 --> 00:33.080
و هر بار از result استفاده می‌کنیم.

00:33.080 --> 00:37.310
پس کاری که انجام می‌دهیم این است که در هر متد یک متغیر جدید ایجاد می‌کنیم.

00:37.310 --> 00:41.630
به جای آن می‌توانیم یک فیلد ایجاد کنیم.

00:41.630 --> 00:44.480
یک متغیر که به آن فیلد هم گفته می‌شود.

00:44.480 --> 00:46.670
مثلاً my result.

00:46.670 --> 00:49.310
و نیازی نیست که بلافاصله مقداری به آن اختصاص دهیم.

00:49.340 --> 00:51.260
می‌توانیم بعداً مقدار بدهیم.

00:51.260 --> 00:57.200
برای مثال در اینجا دیگر نیازی به my result از اینجا ندارم چون این my result

00:57.200 --> 01:00.050
main در داخل متد 
 در دسترس خواهد بود.

01:00.050 --> 01:04.580
پس حالا این my result اینجا همان my result بالاست.

01:04.580 --> 01:07.100
و به آن مقداری اختصاص می‌دهیم.

01:07.100 --> 01:11.090
و سپس می‌توانیم در کل برنامه از آن استفاده کنیم.

01:11.090 --> 01:14.840
پس نکته این متغیر این است که در همه متدهای دیگر قابل استفاده است.

01:14.840 --> 01:17.120
main حالا می‌تواند در متد 
 استفاده شود.

01:17.120 --> 01:19.730
می‌تواند در متد add two values استفاده شود.

01:19.730 --> 01:27.470
myresult به جای ایجاد متغیر 
استفاده کنم و مقدارresult جدید، می‌توانم فقط از  

01:27.470 --> 01:28.520
را اختصاص دهم.

01:28.520 --> 01:33.170
return همینطور برای 
 هم صدق می‌کند.

01:33.170 --> 01:39.830
لازم است my result را بازگردانم، چون result دیگر وجود ندارد، اما باید یک int بازگردانم.

01:39.830 --> 01:41.780
و همین در پایین هم صادق است.

01:41.780 --> 01:46.490
my result می‌توانم فقط بگویم 
 را بازنویسی کن به جای ایجاد متغیر جدید.

01:46.490 --> 01:49.430
obviously my result و می‌توانم 
 را بازگردانم.

01:49.430 --> 01:53.450
my result پس 
 حالا یک فیلد است.

01:53.450 --> 02:00.620
می‌توان آن را متغیر سراسری هم نامید، هرچند دقیق‌ترین اصطلاح نیست.

02:00.620 --> 02:04.010
متغیر سراسری هم تا حدودی صحیح است.

02:04.010 --> 02:09.740
می‌توانید از این اصطلاح استفاده کنید چون متغیری است که به طور کلی در دسترس است، حداقل داخل کلاس ما.

02:09.740 --> 02:10.310
اما اصطلاح دقیق‌تر فیلد یا متغیر نمونه است.

02:10.310 --> 02:16.310
درست است.

02:16.310 --> 02:16.730
پس این یک فیلد یا متغیر نمونه است.

02:16.730 --> 02:21.200
درست است.

02:21.200 --> 02:29.810
پس هر دو اصطلاح درست است، گاهی حتی متغیر سراسری هم گفته می‌شود.

02:29.810 --> 02:34.130
هرچند همانطور که گفتم این اصطلاح کمی عمومی‌تر است.

02:34.130 --> 02:39.860
متغیرهای سراسری معمولاً متغیرهایی هستند که در کل برنامه قابل استفاده‌اند.

02:39.860 --> 02:48.710
در مورد ما، چون برنامه فقط یک کلاس دارد، می‌توان گفت این یک متغیر سراسری است.

02:48.710 --> 02:54.050
اما وقتی چندین کلاس داشته باشیم، متغیرهای سراسری را از دیدگاه متفاوتی بررسی خواهیم کرد.

02:54.050 --> 02:57.470
و سپس می‌توانیم ببینیم چطور می‌توان متغیرهای سراسری واقعی ایجاد کرد.

02:57.470 --> 03:02.720
program.cs حالا در این زمینه می‌خواهم برنامه قدیمی 
 را نشان دهم که قبل‌تر استفاده کردیم.

03:02.720 --> 03:10.970
ما از سبک قدیمی استفاده می‌کردیم. فایل قدیمی Program.cs این int my result است که قبلاً ایجاد کردم.

03:10.970 --> 03:11.840
برای زمینه شما، ما در فایل قدیمی هستیم، همان فایلی که قبلاً استفاده می‌کردیم.


03:11.840 --> 03:19.280
درست است.

03:19.310 --> 03:24.650
این فایل سبک قدیمی است و این فایل سبک جدیدی است که قبلاً استفاده کردیم.

03:24.650 --> 03:31.250
my result وقتی این متغیر 
را ایجاد کردم، مثل این بود که متغیری داخل

03:31.250 --> 03:32.540
متد main ایجاد کرده باشم.

03:32.540 --> 03:32.870
درست است.

03:32.870 --> 03:37.760
چون همه چیز داخل اینجا اساساً داخل متد 
 بود main

03:37.760 --> 03:38.300
درست است.

03:38.300 --> 03:44.930
حالا چه می‌کنیم؟

03:44.930 --> 03:47.240
mainما داخل کلاس هستیم که متد 
 فقط نقطه شروع برنامه است.

03:47.240 --> 03:52.580
main و حالا متغیرها را خارج از 
 ایجاد می‌کنیم که آن‌ها فیلد نامیده می‌شوند.

03:52.580 --> 04:01.730
top-level statements پس در سبک جدید، با داشتن 
، نمی‌توانم فیلد ایجاد کنم.

04:01.730 --> 04:07.850
چون اگر موس را روی my result ببرید، نوشته local variable int my result.

04:07.850 --> 04:10.430
پس این متغیر فقط محلی است.

04:10.430 --> 04:14.660
در دسترس است. main داخل متد 

04:14.660 --> 04:18.620
حالا اگر به این یکی نگاه کنیم، نوشته field.

04:18.620 --> 04:21.470
پس در پرانتز فیلد است.

04:21.470 --> 04:27.080
این متغیری است که در کل فایل برنامه در دسترس است.

04:27.080 --> 04:30.290
داخل این کلاس برنامه قابل استفاده است.

04:30.290 --> 04:35.570
و می‌توان آن را نه فقط در 
 بلکه در سایر متدها هم استفاده کرد  main

04:35.570 --> 04:35.870
درست است.

04:35.870 --> 04:38.090
فقط برای روشن شدن مجدد.

04:38.090 --> 04:45.530
پس می‌توانم بگویم آماده‌ایم که سبک قدیمی را بیشتر استفاده کنیم.

04:45.530 --> 04:49.850
و این برای ادامه کار ضروری خواهد بود.

04:49.850 --> 04:56.540
وقتی به کلاس‌ها و ایجاد اشیاء مختلف نگاه کنیم، باید کاملاً بفهمیم این

04:56.540 --> 04:59.690
چگونه کار می‌کند و زیاد از آن استفاده کنیم تا طبیعی شود.

04:59.820 --> 05:03.420
ممکن است با گذر زمان کمی غیرطبیعی به نظر برسد، اما قدم‌به‌قدم پیش می‌رویم.

05:03.420 --> 05:04.920
پس در ویدیو بعدی می‌بینمتان.