WEBVTT

00:00.140 --> 00:00.860
خوش برگشتید.

00:00.860 --> 00:02.690
در این ویدیو می‌خواهیم دو کار انجام دهیم.

00:02.690 --> 00:06.140
اول، از دو پارامتر به جای یکی استفاده می‌کنیم.

00:06.140 --> 00:10.250
دوم، یک نوع بازگشتی خواهیم داشت.

00:10.250 --> 00:16.310
پس به جای داشتن مثال‌های ساده‌ای که فقط چیزی می‌نویسیم یا چیز مشخصی می‌نویسیم،

00:16.310 --> 00:20.150
بیایید یک کاربرد واقعی داشته باشیم.

00:20.150 --> 00:24.590
این کاربرد واقعی یک جمع‌کننده خواهد بود.

00:24.590 --> 00:26.510
یا یک تفریق‌کننده.

00:26.510 --> 00:29.660
پس می‌توانیم یک متد ایجاد کنیم.

00:29.660 --> 00:32.810
بیایید با روش پیش‌فرضی که قبلاً داشتیم شروع کنیم.

00:32.810 --> 00:34.940
دو مقدار را جمع کنیم.

00:34.940 --> 00:39.890
و من فقط پارامترها را در اینجا تعریف می‌کنم.

00:39.890 --> 00:43.040
پارامتر اول یک عدد صحیح خواهد بود.

00:43.040 --> 00:45.800
و من این را مقدار یک می‌نامم.

00:45.800 --> 00:51.440
و سپس پارامتر دوم یک عدد صحیح خواهد بود که آن را مقدار دو می‌نامم.

00:51.440 --> 00:56.930
پس می‌بینید اگر بخواهید چندین پارامتر استفاده کنید، آن‌ها را با کاما جدا می‌کنید.

00:56.930 --> 01:02.030
پس می‌گویید، خوب، مقدار اول خواهد بود و سپس مقدار دوم خواهد بود.

01:02.030 --> 01:04.130
و نوع این دو مقدار چه خواهد بود؟

01:04.130 --> 01:05.630
 خواهند بود.int آن‌ها از نوع 

01:05.630 --> 01:07.010
آن‌ها باید از نوع int باشند.

01:07.010 --> 01:10.640
چون کاری که می‌خواهم بعد انجام دهم این است که می‌خواهم آن‌ها را با هم جمع کنم.

01:10.640 --> 01:16.640
پس می‌گویم int نتیجه برابر است با مقدار یک به اضافه مقدار دو.

01:16.670 --> 01:20.540
حالا چطور این نتیجه را از متدم دریافت کنم؟

01:20.540 --> 01:21.920
متد جمع دو مقدار.

01:21.950 --> 01:25.910
Console.WriteLine حالا واضح است که می‌توانم فقط از 
 استفاده کنم و بگویم نتیجه برابر است با

01:26.000 --> 01:28.190
و سپس می‌توانم نتیجه را چاپ کنم.

01:28.190 --> 01:30.530
این خوب است و کار خواهد کرد.

01:30.530 --> 01:34.040
اگر الان بروم و متد جمع دو مقدار را اینجا استفاده کنم

01:34.040 --> 01:35.570
و بخواهم این متد را فراخوانی کنم،

01:35.570 --> 01:37.220
واضح است که باید دو مقدار پاس کنم.

01:37.220 --> 01:39.470
فرض کنیم بخواهم ۵ و ۱۰ را پاس کنم.

01:39.470 --> 01:41.750
و سپس این متد را فراخوانی می‌کنم.

01:41.750 --> 01:43.850
و بیایید این را اجرا کنیم تا ببینیم.

01:43.850 --> 01:46.220
پس می‌گوید نتیجه برابر است با ۱۵.

01:46.250 --> 01:47.300
خیلی ساده است، درست است؟

01:47.300 --> 01:53.360
پس فقط دو مقدار را با هم جمع می‌کند، سپس نتیجه را می‌گیرد و آن را روی کنسول چاپ می‌کند.

01:54.110 --> 02:00.110
اما اگر این متد جمع دو مقدار واقعاً فقط باید آن‌ها را با هم جمع کند و نتیجه را برگرداند، 

02:00.110 --> 02:03.080
اما هرگز آن را ننویسد، چون نوشتن را خارج از آن انجام می‌دهیم.

02:03.080 --> 02:08.990
پس این متد واقعاً یک مسئولیت دارد و فقط یک مسئولیت، و آن هم جمع کردن دو مقدار است.

02:08.990 --> 02:12.500
پس مسئول نوشتن آن روی صفحه یا هر چیز دیگر نیست.

02:12.500 --> 02:13.190
باشه.

02:13.190 --> 02:17.240
پس برای نوشتن چیزی روی صفحه می‌توانیم از یک متد دیگر استفاده کنیم.

02:17.240 --> 02:19.430
Console.WriteLine یا می‌توانیم فقط از متد 
 استفاده کنیم.

02:19.430 --> 02:22.580
حالا چطور این نتیجه را از اینجا بیرون بیاورم؟

02:22.580 --> 02:25.130
return خب می‌توانم از کلمه کلیدی 
 استفاده کنم.

02:25.160 --> 02:27.320
می‌توانم نتیجه را بازگردانم.

02:27.320 --> 02:34.250
با این حال، فقط می‌توانم نتیجه را از یک متد بازگردانم اگر متد مشخص کند که نوع خاصی را بازمی‌گرداند.

02:34.250 --> 02:35.720
پس به جای void،

02:35.720 --> 02:44.120
int حالا باید بگویم که یک int بازمی‌گردانم چون نتیجه از نوع 
 است.

02:46.340 --> 02:53.120
پس ساختار کلی این است که نوع داده را درست قبل از نام متد تعریف می‌کنید.

02:53.120 --> 02:59.720
سپس داخل پرانتزها مشخص می‌کنید چه پارامترهایی داشته باشید.

02:59.720 --> 03:04.940
و سپس هر کاری که می‌خواهید داخل آکولادها انجام دهید.

03:04.940 --> 03:09.020
و بعد از آن می‌توانید آن را بازگردانید.

03:09.020 --> 03:10.280
یا باید آن را بازگردانید.

03:10.280 --> 03:15.980
چون اگر چیزی بازنگردانید، اگر این خط وجود نداشته باشد، متد ما خراب خواهد شد.

03:15.980 --> 03:20.030
در واقع این خطا می‌دهد که همه مسیرهای کد یک مقدار باز نمی‌گردانند.

03:20.030 --> 03:26.600
return این فقط یعنی ما باید از کلیدواژه 
 استفاده کنیم و همان نوع داده‌ای که اینجا تعریف شده را بازگردانیم.

03:26.600 --> 03:29.600
پس این یک int است و result هم باید یک int باشد.

03:29.600 --> 03:36.080
فقط برای نشان دادن اینکه اگر این را به عنوان مثال double تعریف کنم، اینجا باعث خطا خواهد شد، زیرا ناگهان

03:36.080 --> 03:37.040
result یک double است.

03:37.040 --> 03:40.460
اما من قول داده‌ام که یک int بازگردانم.

03:40.460 --> 03:47.060
پس باید مطمئن شوم هر چیزی که بازمی‌گردانم همان نوع داده‌ای است که اینجا تعریف کرده‌ام.

03:47.060 --> 03:52.820
حالا اینجا در واقع همان پنج به اضافه ده خواهد بود.

03:52.820 --> 03:55.220
پس این ۱۵ را بازمی‌گرداند.

03:55.220 --> 03:57.350
و می‌توانیم آن را در یک متغیر ذخیره کنیم.

03:57.350 --> 04:01.370
myResult پس می‌توانیم یک متغیر دیگر داشته باشیم که به عنوان مثال 
 نامیده شود.

04:01.370 --> 04:06.320
و اکنون هر چیزی که نتیجه این محاسبه باشد را ذخیره می‌کند.

04:06.320 --> 04:08.840
و حالا می‌توانم نتیجه را روی صفحه چاپ کنم.

04:08.840 --> 04:12.770
پس نتیجه برابر است با myResult.

04:12.770 --> 04:15.830
ر و اینجا به علاوه 
، باشه.

04:15.830 --> 04:21.230
پس این واضح است که حالا خیلی پیچیده‌تر از زمانی است که می‌خواستیم دو مقدار را .

04:21.230 --> 04:21.800
با هم جمع کنیم

04:21.800 --> 04:25.550
اما این فقط ساده‌ترین راه برای توضیح این مفاهیم است.

04:25.550 --> 04:29.030
این مفاهیم به شکل‌های بسیار پیچیده‌تری استفاده می‌شوند.

04:29.030 --> 04:32.870
اما شما باید این را بفهمید قبل از اینکه بتوانید بخش‌های پیچیده‌تر را درک کنید.

04:32.870 --> 04:35.630
و ما همه آن را گام به گام بررسی خواهیم کرد.

04:35.630 --> 04:42.710
addTwoValues حالا، همانطور که می‌بینیم، متدی داریم که خودمان ایجاد کرده‌ایم، 
، که دو مقدار را جمع می‌کند

04:42.710 --> 04:45.920
که ما این مقادیر را اینجا به عنوان پارامتر تعریف کرده‌ایم.

04:45.920 --> 04:48.170
حالا ما آن‌ها را اینجا به عنوان آرگومان می‌دهیم.

04:48.170 --> 04:51.080
و ما یک مقدار از نوع int دریافت می‌کنیم یا باز می‌گردانیم.

04:51.080 --> 04:57.830
پس اگر موس خود را روی متدی که همین الان ایجاد کرده‌ایم ببرید، می‌بینید که addTwoValues یک int و یک int دیگر می‌گیرد

04:57.830 --> 04:59.780
و آن را باز می‌گرداند.

04:59.990 --> 05:01.070
به عنوان یک int.

05:01.070 --> 05:05.720
پس حالا هر چیزی که بازگردانده شود، درون این متغیر ذخیره می‌شود.

05:05.720 --> 05:09.140
و اکنون از این متغیر برای نوشتن خروجی استفاده می‌کنیم.

05:09.170 --> 05:15.500
WriteLine حالا نکته جالب این است که اگر موس خود را روی متد 
 ببرید، می‌بینید که این متد

05:15.500 --> 05:17.180
هیچ مقداری باز نمی‌گرداند.

05:17.180 --> 05:18.770
این متد void بازمی‌گرداند.

05:18.770 --> 05:22.550
حالا فرض کنید مقادیری را از کاربر دریافت کنیم.

05:22.550 --> 05:26.270
پس بیایید مقداری از کاربر بگیریم.

05:26.270 --> 05:29.570
دو متغیر جدید ایجاد می‌کنیم.

05:29.570 --> 05:35.270
numOne قرار است برابر با Console.ReadLine باشد.

05:35.270 --> 05:38.120
پس هر چیزی که کاربر وارد کرد را می‌گیریم.

05:38.120 --> 05:39.230
و باید آن را تجزیه کنیم.

05:39.230 --> 05:43.610
پس هر چیزی که کاربر وارد کرد را به int تبدیل می‌کنیم.

05:43.610 --> 05:45.650
قبلاً چندین بار این کار را دیده‌ایم.

05:45.800 --> 05:49.820
ذخیره می‌کنیم.numOne حالا ورودی کاربر را در 

05:49.820 --> 05:52.460
را به عنوان متغیر ارسال کنیم numOne و می‌توانیم اکنون 
 

05:52.460 --> 05:59.720
حالا متد ما کاری که انجام می‌دهد این است که همیشه ده را به مقداری که وارد کرده‌ایم اضافه می‌کند.

05:59.720 --> 06:01.790
پس بیایید این برنامه را اجرا کنیم.

06:01.790 --> 06:06.770
و هیچ چیزی نمایش داده نمی‌شود چون ما چیزی برای نمایش نگفته‌ایم.

06:06.770 --> 06:10.010
ما هیچ نشانه‌ای نداشتیم که باید چه چیزی نمایش داده شود.

06:10.010 --> 06:12.260
و می‌بینید که می‌گوید نتیجه 15 است.

06:12.260 --> 06:14.870
حالا بیایید دوباره اجرا کنیم، شاید با یک عدد متفاوت.

06:14.870 --> 06:18.710
پس من عدد 25 را وارد می‌کنم و می‌گوید نتیجه 35 است.

06:18.710 --> 06:25.730
پس می‌توانیم چیزی بگوییم مانند "یک عدد وارد کنید، من ده به آن اضافه می‌کنم."

06:25.730 --> 06:27.200
و سپس عدد را وارد می‌کنیم.

06:27.200 --> 06:29.480
تبدیل می‌شود.int و آن عدد به 
 
06:29.480 --> 06:32.390
این مقدار داخل این متغیر int به نام num one ذخیره می‌شود.

06:32.390 --> 06:36.650
ما آن متغیر int یعنی num one را به متد add two values می‌دهیم.

06:36.650 --> 06:39.830
حالا واضح است که می‌توانیم مقدار دوم را هم بپرسیم.

06:39.830 --> 06:44.270
و سپس می‌توانیم آن مقدار دوم را نیز اینجا پاس کنیم.

06:44.270 --> 06:47.960
value حالا می‌بینید که من اینجا آن را 
 نامیده‌ام.

06:47.960 --> 06:50.600
num one و اینجا نام 
 را پاس می‌کنم.

06:50.600 --> 06:52.400
این نام‌ها می‌توانند هر چیزی باشند.

06:52.400 --> 06:55.760
پس این نام می‌تواند یک نام کاملاً متفاوت باشد.

06:55.760 --> 06:58.880
واضح است که خوب است اگر نام‌های متغیر توصیفی داشته باشید.

06:58.880 --> 07:05.300
اما این متغیر پارامتر تنها داخل همین بلوک موجود است.

07:05.300 --> 07:08.270
value one پس نمی‌توانم اینجا از 
 استفاده کنم.

07:08.270 --> 07:11.270
value one نمی‌توانم بگویم 
 برابر پنج است مثلاً.

07:11.270 --> 07:18.290
value one و value two این کار نمی‌کند چون این 
 تنها در محدوده بلوک‌های آکولاد در دسترس هستند.

07:19.520 --> 07:22.100
اما بیایید در ویدئوی بعدی کمی بیشتر به این موضوع بپردازیم.

07:22.100 --> 07:23.330
پس آنجا می‌بینمتان.

