متدها در #c
شناسه پست: 1945
بازدید: 1388

سلام. به مقاله متدها در #C که قصد داریم در این مقاله در مورد متدها صحبت کنیم خوش آمدید. علاوه بر این ، ما می خواهیم یاد بگیریم که چگونه از متدها در #C استفاده کنیم ، امضای متد چیست و چگونه از پارامترها و آرگومان ها استفاده کنیم.

این مقاله، سرفصلی از دوره آموزشی زیر میباشد:

اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک مبانی #c کلیک کنید.

اگر میخواهید source code مثالهای ما را دانلود کنید میتوانید آن را از لینک سورس کد متدها در #C دانلود کنید.

در این مقاله، ما در مورد موضوعات زیر صحبت میکنیم:

در مقاله قبلی، ما در مورد access modifier ها صحبت کردیم (که یک قسمت مهمی از هر متد است). بنابرایم به شدت به شما پیشنهاد میکنیم که اگر تاکنون آن را مطالعه نکردید آن را مطالعه گنید.

یک متد یک بلاک کد است که می توانیم برای استخراج کردن بخشی از کدمان جهت استفاده مجدد از آن استفاده کنیم ، در نتیجه باعث میشود که کلاس های ما قابل خوانایی بیشتر و نگهداری آن آسان تر شود. ما زمانیکه متد را با استفاده از نامش صدا میزنیم و آرگومانهای مورد نیازش را مشخص میکنیم در نتیجه میتوانیم تمام کدهای داخل آن متد را اجرا کنیم.

امضاهای متد

ما میتوانیم متدهایمان را با مشخص کردن امضای متد که شامل access modifier (public, private…)، نام یک متد و پارامترهای متد است تعریف کنیم. اگر میخواهیم متدمان را پیاده سازی کنیم باید بدنه متدمان را با بریس باز و بسته مشخص کنیم. ما کدهایمان را داخل این بریس باز و بسته قرار میدهیم. علاوه بر این، باید یک مقدار برگشتی (void, int, double…) را برای valid کردن متدمان تعیین کنیم. نوع برگشتی به عنوان یک قسمتی از امضای متد اعمال نمیشود اما نمیتوانیم یک متد را بدون آن ایجاد کنیم. بنابراین آن خود را به داخل یک امضا (یا مشخصات) تزریق میکند.

یک متد که یک مقدار را برمیگرداند باید دو شرط را شامل شود. اول اینکه یک نوع بازگشتی را قبل از نام متد مشخص کند. دوم اینکه، آن باید یک return داخل بدنه خود (داخل بریس باز و بسته) داشته باشد. از طرفی دیگر، اگر متد هیچ چیزی برنگرداند، کلمه void به جای کلمه return استفاده میشود. در این حالت، متد دیگر نیازی به کلمه return داخل بدنه خود ندارد:

امضاهای متد

در پروژه، ما میتوانیم دو متد متفاوت با یک نام داشته باشیم، اما نمیتوانیم دو متد متفاوت با یک امضای متد یکسان داشته باشیم. حداقل یک قسمت از امضای متد باید متفاوت باشد. زمانیکه ما دو متد یا بیشتر با یک نام یکسان داریم اما امضای آنها با هم متفاوت است به آن Method Overloading گفته میشود.

پارامترها و آرگومانها

در مثال قبلی، ما دیدیم که متدهای ما فقط یک پارامتر میگرفت. اما ما میتوانیم یک متد که تعدادی پارامتر که مورد نیاز ما است را ایجاد کنیم:

ذکر این نکته مهم است که هر پارامتر، نوع و نام خودش را دارد و هریک با کاما (,) از هم جدا شده اند.

زمانیکه ما یک متد را با یک امضا ایجاد میکنیم، در اصل پارامترها را ایجاد میکنیم (آنها را به عنوان یک متغیر برای مقداری از یک نوع تصور کنید). اما وقتیکه آن متد را صدا میزنیم، مقدارهای واقعی (آرگومانها) را به آن پارامترها پاس میدهیم:

مثال 1: یک برنامه بنویسید که جمع، تفریق و ضرب دو عدد از ورودی را در خروچی چاپ کند:

متد در #C

پارامترهای اختیاری

یک پارامتر اختیاری، یک مقدار پیشفرض دارد. متدی که پارامترهای اختیاری خودش را دارد میتواند بدون آن آرگومانها صدا زده شود. اما همچنین میتوانیم مقدارهای مورد نظر خودمان را نیز به آنها پاس دهیم. اگر این کار را انجام دهیم در نتیجه مقادیر پیش فرض با مقادیری که ما پاس میدهیم جایگرین میشوند:

نتیجه گیری

استفاده از متدها خیلی مفید است، نه فقط در #C بلکه کلا در برنامه نویسی. بنابراین داشتن دانش در مورد آنها کاملا یک مزیت است. برای استفاده از آنها در کدنویسی هراس نداشته باشید، آنها باعث می شوند که کدهای شما تمیزتر، دارای قابلیت نگهداری، خوانایی بیشتر و بیش از همه قابل استفاده مجدد باشند.

در مقاله بعدی، شما کاربرد کلمات کلیدی Ref و Out در #c را یاد خواهید گرفت.

نویسنده

امید عباسی
من امید عباسی هستم. سالهاست که در زمینه برنامه نویسی با تکنولوژی دات نت فعالیت میکنم و عاشق این هستم که تجربیات و دانش خودم را در این زمینه با دیگران به اشتراک بزارم. خیلی دوست دارم که نظر و انتقاد خودتون رو در مورد این نوشته برای من بنویسید تا بتونم در آینده، مطالب بهتر و ارزشمندتری را برای شما فراهم کنم. در صورت داشتن هرگونه سوال هم در قسمت دیدگاه ها میتونید با بنده در ارتباط باشید