WEBVTT

00:00.140 --> 00:03.770
در این ویدیو، ما می‌خواهیم به یک عضو دیگر از یک کلاس نگاه کنیم.

00:03.770 --> 00:05.810
و این عضو به نام متدها است.

00:05.810 --> 00:09.320
پس متدهای عضو یا توابع عضو وجود دارند.

00:09.320 --> 00:12.140
توابع شبیه متدها هستند.

00:12.140 --> 00:13.400
آن‌ها همان کار را انجام می‌دهند.

00:13.400 --> 00:16.790
تنها تفاوت این است که توابع بخشی از یک کلاس نیستند.

00:16.790 --> 00:20.090
اما وقتی یک تابع داخل یک کلاس باشد، به آن متد گفته می‌شود.

00:20.090 --> 00:20.390
باشه.

00:20.390 --> 00:26.000
پس اگر تا به حال این دو کلمه را با هم شنیده‌اید یا در سایر زبان‌های برنامه‌نویسی دیده‌اید،

00:26.000 --> 00:29.180
اغلب فقط به آن‌ها توابع گفته می‌شود.

00:29.180 --> 00:31.850
اما به محض اینکه در زمینه برنامه‌نویسی شیءگرا باشد،

00:31.850 --> 00:36.830
به آن‌ها متد گفته می‌شود.OOP مثلاً در یک پروژه مبتنی بر 

00:36.830 --> 00:41.180
Customer.cs بیایید یک متد داخل فایل 
 خود ایجاد کنیم.

00:41.180 --> 00:46.880
customerما می‌دانیم که می‌توانیم یک سازنده پیش‌فرض به نام 
 داشته باشیم که فقط مقادیر پیش‌فرض را تنظیم می‌کند.

00:46.880 --> 00:50.210
اما اگر بخواهیم مقادیر را بعد از ایجاد شیء تنظیم کنیم چه؟
 
00:50.210 --> 00:55.730
فرض کنید می‌خواهیم مقادیری مثل نام، آدرس و شماره تماس را بعد از ایجاد شیء تنظیم کنیم.

00:55.730 --> 01:01.670
پس بعد از اینکه شیء از قبل ایجاد شده است، زیرا سازنده فقط یک بار فراخوانی می‌شود و آن

01:01.670 --> 01:03.590
زمانی است که شیء ایجاد می‌شود.

01:03.590 --> 01:06.530
newپس هر زمان که از کلیدواژه 
 استفاده کنیم.

01:06.530 --> 01:11.390
new customerیعنی هر زمان که این 
 را اینجا داشته باشیم، همان زمان شیء ایجاد می‌شود.

01:11.390 --> 01:16.970
اما پس از آن نمی‌توانیم از همان سازنده برای همان شیء مشتری استفاده کنیم، باشه؟

01:16.970 --> 01:19.730
سازنده فقط یک بار در هنگام ایجاد فراخوانی می‌شود.

01:19.730 --> 01:25.340
حال اگر بخواهیم جزئیات را بعد از آن تنظیم کنیم و نخواهیم مانند اینجا انجام دهیم، بلکه

01:25.340 --> 01:26.810
با یک متد این کار را کنیم چه؟

01:26.810 --> 01:33.650 
public void خب، می‌توانیم یک متد 
ایجاد کنیم، مثلاً .
setDetails

01:33.650 --> 01:37.640
و سپس برای آن مشتری می‌توانیم تمام جزئیات را داشته باشیم.

01:37.640 --> 01:41.990
پس می‌توانیم نام، آدرس، شماره تماس و غیره را داشته باشیم.

01:41.990 --> 01:48.320
و کاری که می‌خواهیم انجام دهیم در واقع همان کاری است که با سازنده سفارشی خود انجام دادیم،

01:48.320 --> 01:53.420
جایی که نام، آدرس و شماره تماس را گرفتیم و اساساً آن را در داخل  به name، address و contactNumberنام
  ذخیره کردیم.

01:53.420 --> 01:56.810
propertiesپس آن 
 که اینجا تنظیم کردیم، فقط از  پیش‌فرض استفاده می‌کنیم.
getter و setter

02:02.240 --> 02:04.220
ما نحوه استفاده از آن را تغییر ندادیم.

02:04.220 --> 02:09.020
ما نگفتیم، خب اگر نام خالی باشد، آن نام را قبول نکن.

02:09.020 --> 02:14.600
یا اگر آدرس خالی باشد، آن را به یک مقدار تصادفی یا مقدار پیش‌فرض یا چیزی شبیه به آن تنظیم کن.

02:14.600 --> 02:16.040
می‌توانیم این کار را هم انجام دهیم.

02:16.040 --> 02:17.210
می‌دانید چگونه این کار را انجام دهید.


02:17.210 --> 02:23.480
شما این را زمانی که به خصوصیات نگاه می‌کردیم دیده‌اید، اما برگردیم به متد جدیدی که ایجاد کردیم،

02:23.480 --> 02:25.520
است.Set Detailsکه نام آن 

02:25.520 --> 02:31.190
customerحالا، این متد، متدی است که به کلاس 
 تعلق دارد.

02:31.190 --> 02:39.620
 customerو هر زمان که از این متد استفاده کنیم، شیء
 که روی آن این متد را فراخوانی می‌کنیم، .

02:39.620 --> 02:40.400
تغییر می‌کند

02:40.400 --> 02:42.170
پس بذارید این موضوع جا بیفتد.

02:42.170 --> 02:43.400
این یعنی چه؟

02:43.400 --> 02:45.860
خب، بیایید قدم به قدم نگاه کنیم.

02:45.860 --> 02:48.170
بنابراین ما اکنون این متد را داریم.

02:48.170 --> 02:52.670
publicو آن را 
 کردیم تا بتوانیم از کلاس دیگری به آن دسترسی داشته باشیم، باشه؟

02:52.670 --> 02:59.510
این همان access modifier به نام public است که اجازه می‌دهد از برنامه.cs فایل استفاده کنیم.

02:59.510 --> 03:04.370
 privateدر غیر این صورت اگر
 بود، نمی‌توانستیم این کار را انجام دهیم.

03:04.370 --> 03:07.040
set detailsنمی‌توانستیم از متد 
 در کلاس دیگر استفاده کنیم.

03:07.040 --> 03:09.410
بعداً به این موضوع خواهیم پرداخت.

03:09.410 --> 03:13.400
اما فقط می‌خواستیم خط کامل کد را سریع مرور کنیم.

03:13.400 --> 03:19.160
سپس نوع بازگشتی را void می‌گوییم، که یعنی این متد نیازی به هیچ return ندارد.

03:19.160 --> 03:21.770
return keywordباشه، هیچ 
 یا چیزی شبیه به آن لازم نیست.

03:21.770 --> 03:27.350
سپس به آن یک نام می‌دهیم و دوباره با حرف بزرگ شروع می‌کنیم و از 
استفاده می‌کنیمcamel case 

03:27.380 --> 03:35.840
بعد از آن، پارامترهای خود را داریم و بدنه متد را داریم، باشه؟

03:35.840 --> 03:38.780
همه چیز داخل این آکولادها بدنه متد است.

03:38.780 --> 03:45.260
CSحالا بیایید این متد را داخل برنامه 
خود استفاده کنیم.customer فایل روی 
 
03:45.260 --> 03:47.120
my customer، باشه؟

03:47.120 --> 03:52.910
پس کاری که اکنون انجام می‌دهیم این است که می‌گوییم .
my customer Dot

03:52.910 --> 03:58.250
و می‌بینید که تمام propertyهایی که می‌توانیم دسترسی داشته باشیم نمایش داده می‌شوند: address، contact number و name.

03:58.250 --> 04:02.570
است که متد ماست.set detailsو این چیز جدید 
 
04:02.570 --> 04:05.990
استفاده کنیم.set detailsپس اکنون می‌توانیم از این متد 

04:05.990 --> 04:10.790
را پاس دهیم.name، address و contact numberو می‌توانیم 
 
04:10.790 --> 04:12.500
پس بیایید همین کار را انجام دهیم.

04:12.500 --> 04:13.700
یک نام اضافه کنیم.

04:13.700 --> 04:15.410
صدا می‌کنیم.Frankاین یکی را 
 
04:15.410 --> 04:21.110
و سپس آدرس خواهد بود Main Street 2.

04:21.140 --> 04:26.180
و شماره تماس خواهد بود ۵۵۵ و الی آخر، باشه؟

04:26.180 --> 04:27.380
هر شماره‌ای که بخواهید.

04:27.380 --> 04:30.830
و سپس با یک سمی‌کالن پایان می‌دهیم.

04:30.830 --> 04:36.830
set detailsپس حالا اینجا نحوه فراخوانی متد 
 را دیدیم.

04:36.830 --> 04:44.900
my customerو حالا می‌خواهیم مقادیر برای 
است را بازنویسی کنیم.my customer که همان 
 

04:44.900 --> 04:50.180
My customer یک شیء از نوع customer است که ما ایجاد کرده‌ایم.

04:50.180 --> 04:54.530
حال این کار کلاس اصلی را تغییر نمی‌دهد.

04:54.530 --> 04:59.750
پس واضح است که این متد آن را تغییر خواهد داد، زیرا اکنون یک قابلیت به آن داده‌ایم.

04:59.910 --> 05:00.480
کلاس.

05:00.480 --> 05:02.910
پس این کلاس نمی‌تواند کاری انجام دهد.

05:02.910 --> 05:11.220
در این مثال خاص، اکنون می‌تواند جزئیات را تنظیم کند، اما نه URL و نه Frank را تغییر نمی‌دهد.

05:11.910 --> 05:14.100
و بیایید نگاهی به آن بیندازیم.

05:14.100 --> 05:17.400
استفاده می‌کنیم.Console.WriteLineاز دستور 

05:17.400 --> 05:32.310
پس my customer این است و سپس به عنوان مثال my customer.dot name به علاوه و او در به علاوه

05:32.310 --> 05:40.110
customer یا my customer.dot main street یا dot address.

05:40.110 --> 05:41.460
من فراتر نمی‌روم.

05:41.460 --> 05:43.110
اما این کافی است.

05:43.110 --> 05:49.350
و حالا همین کار را برای URL انجام می‌دهیم.

05:49.350 --> 05:53.970
پس URL خواهد بود URL.dot name.

05:53.970 --> 05:57.210
و اینجا URL.dot address خواهد بود.

05:57.210 --> 05:59.550
و این خط را نیز کامنت می‌کنیم.

05:59.550 --> 06:01.950
فقط می‌خواهم نشان دهم چه اتفاقی می‌افتد.

06:01.950 --> 06:07.320
my customer Frankزیرا اینجا می‌بینید 
دو زندگی می‌کند. Main Street است و او در
 
06:07.320 --> 06:15.240
 URL  همان URL  و سپس می‌گوید
 URL  است و او در خالی زندگی می‌کند زیرا هرگز آدرس برای 
 تعریف نکردیم.

06:15.240 --> 06:21.000
و همچنین از سازنده پیش‌فرض استفاده نکردیم که در آن متغیر اختصاص داده می‌شد.

06:21.030 --> 06:22.590
خوب، عالی.

06:22.590 --> 06:28.830
این یک مثال بسیار ساده است برای اینکه چگونه می‌توانیم از متدها استفاده کنیم.

06:28.830 --> 06:34.620
ما دوباره به متدها نگاه خواهیم کرد اما از زاویه‌ای کمی متفاوت با ماشین، زیرا می‌خواهم

06:34.620 --> 06:40.830
واقعاً مطمئن شوم که شما می‌فهمید متدها در زمینه کلاس‌ها چگونه کار می‌کنند، زیرا آن‌ها متفاوت عمل می‌کنند

06:40.830 --> 06:43.050
از چیزی که قبلاً استفاده کرده‌ایم.

06:43.050 --> 06:48.900
قبلاً فقط برای این بودند که یک سری کد را بگیرند و قابل استفاده مجدد کنند.

06:48.900 --> 06:56.970
و اکنون ما یک سری کد قابل استفاده مجدد داریم، اما آن را در یک کلاس قرار می‌دهیم یا داخل کلاس می‌گذاریم.

06:56.970 --> 06:58.620
پس این فقط چیزی را که درون کلاس است تغییر می‌دهد یا کاری را در ترکیب با آن کلاس انجام می‌دهد.

06:58.620 --> 07:04.860
پس هر زمان که از یک شیء از آن کلاس استفاده می‌کنیم، مانند URL که یک شیء از کلاس customer ما است،

07:04.860 --> 07:10.380
URL.dotمی‌توانیم از 
 و سپس نام متدمان استفاده کنیم تا کاری با آن انجام دهیم.

07:10.380 --> 07:15.930
هم صدق می‌کند.my customerهمین موضوع برای 
 
07:15.930 --> 07:17.910
customerاین یک شیء از کلاس 
 ما است.

07:17.910 --> 07:20.190
my customer.dotپس اکنون می‌توانم از 
 استفاده کنم.

07:20.190 --> 07:28.650
و هر چیزی که نام متدی است که تعریف کرده‌ایم و با آن کاری انجام my customerدهیم، 
 را با آن تغییر دهیم

07:28.650 --> 07:32.220
با آن انجام دهد.my customerیا کاری کنیم که 

07:32.220 --> 07:35.970
خوب، پس این ویدیو هم تمام شد.

07:35.970 --> 07:37.170
در ویدیوی بعد می‌بینمتان.

