Jeff Mosawy
- · مقدمه
تا اینجای آموزش، همه کدهایی که نوشتیم، تنها ما بین دو براکت خاصی بودند. اما این روش برنامهنویسی، به هیچ وجه بهینه نیست و در هیچکجا قابل قبول نخواهد بود. برای شروع یادگیری، مجبور بودیم که چنین روشی را شروع کنیم، اما از این به بعد باید این روش کاملاً عوض شود.
هربار که ما تمامی کدهایمان را میان دو براکت پشتسرهم بنویسیم، کدها ناخواناتر خواهند شد و حتی برنامهنویس هم درآینده متوجه نخواهد شد که هر قسمت در حال انجام چه کاری است. در چنین حالتی، ما از چیزی استفاده خواهیم کرد به نام متد (Method).
- · معرفی متد (Method)
یک متد، یک بخشی از کد است که یک کار خاصی را انجام میدهد. ماشینحسابی را که پیشتر نوشتهایم را به یاد دارید؟ در آن برنامه ما میتوانستیم که بخشی از کدی را در یک متد بنویسیم که کار جمع انجام دهد؛ بخش دیگری را در متد دیگری مینوشتیم که متد تفریق را انجام دهد؛ و به همین ترتیب برای ضرب و تقسیم. در نهایت، هر کجا که به انجام عملیات فوق نیازی پیدا کردیم، کافیست که متد را صدا بزنیم!
پیش از آنکه کارمان را با متد آغاز کنیم، به این نکته توجه داشته باشید که متد در زبانهای دیگر همانند C++، با نام تابع (Function) شناخته میشود؛ اما مایکروسافت در زبان سیشارپ خود، آن را بهنام متد (Method) به دلایل خاص خودش تغییر نام داده است.
برای شروع کار با متدها، ما یک برنامه سادهای را استارت خواهیم زد؛ بدین نحو که دو شماره را از کاربر بوسیله text box میخواند. ما چهار button نیز خواهیم داشت که عملیات اصلی ریاضی (جمع، تفریق، ضرب و تقسیم) را انجام میدهد. اما این بار این عملیات را با استفاده از متدها انجام خواهیم داد.
پروژهی جدیدی را در Visual Studio آغاز کنید و فرم خود را به شکل زیر طراحی کنید:

هنگامی که Text Box و Button ها را اضافه کردید، لازم نیست که مشخصه Name آنها را تغییر دهید؛ همانهایی که هستند رها کنید (button1، button2، …(
بر روی button با نام Add Up دوبار کلیک کنید تا پنجره کدنویسی برای شما باز شود. نشانگر جایی که باید تایپ کنید مابین دو براکت مربوط به button با نام Add Up است. ما کاری به داخل براکت نخواهیم داشت؛ لذا این نشانگر را به براکت بسته انتقال دهید و پس از وارد خط جدید شوید و کد زیر را بنویسید:
void AddUp()
{
MessageBox.Show(“Add Up Here”);
return;
}
کد شما به شکل زیر درخواهد آمد:

متدها میتوانند مقداری را برگردانند (اصطلاحاً مقداری را return کنند)؛ مثلاً جواب جمع دو عدد، اما هیچ لزومی ندارند که حتماً مقداری را برگردانند. متدی که ما نوشتیم، یک MessageBox را نشان میدهد که تنها زمانی اجرا میشود که ما آن را صدا بزنیم.
وقتی که شما از متد خود میخواهید که هیچ مقداری را برنگرداند (مثل متد ما)، کافیست قبل از نام متد، کلمه کلیدی Void را قرار دهید. بعد از یک فاصله (Space)، نام تابع را مینویسید و پس از دو پرانتز باز و بسته، دو براکت باز و بسته قرار میدهید و کدهای مورد نظر خودتان را مابین آن مینویسید. انتخاب نام متد نیز همانند انتخاب نام متغیر کاملاً دلبهخواه است و میتواند هر نامی باشد. مثلاً ما در اینجا نام متد خود را AddUp انتخاب کردیم.
در انتهای متد خود، قبل از آنکه براکت بسته شود، کلمهی کلیدیای با نام Return نوشتهایم و در انتهای آن یک Semicolon قرار دادهایم. وقتی که ما متد خود را به شکل void تعریف کردهایم، لزومی بر قرار دادن کلمه کلیدی return نیست، چونکه شما نمیخواهید مقداری را return کنید (برگردانید.) شما فقط این تابع را نوشتید که کار خاصی را انجام دهد و نیازی به مقداری ندارید. ما تنها این کلمه کلیدی return را قرار دادهایم چونکه یک استاندارد در هنگام نوشتن یک متد است.
هنگامی که C# کلمه return را در متدی ببینید (به آن برسد،) از متد خارج میشود و ادامه کدهای موجود در بخش اصلی را انجام میدهد.
متد AddUp که ما نوشتیم، فعلاً هیچ کاری را نمیکنید، چونکه آن را صدا نزدیم. ما میخواهیم که این متد کار خود را زمانی آغاز کند، وقتی که ما بر روی button با نام Add Up کلیک کردهایم. پس برای صدا زدن یک متد، اینگونه مینویسیم:
AddUp();
پس برای صدا زدن این متد در هنگام کلیک بر روی Button با نام AddUp، کد شما باید به شکل زیر باشد:

برنامه خود را یک بار اجرا کنید؛ خواهید دید که زمانی که بر روی Add Up کلیک میکنید، یک MessageBox برای شما ظاهر میشود.
حال میدانید که چه اتفاقی میافتد؟ شما وقتی که بر روی Add Up کلیک میکنید، سیشارپ به سراغ کدهای ما بین مربوط به button1 میرود. در آنجا با متدی با نام AddUp ملاقات میکند. وقتی که میبیند که AddUp از نوع متد است (چون پرانتز باز و بسته دارد)، متوجه میشود که این متد باید جایی در کدهای ما تعریف شده باشد؛ لذا شروع به جستجو میکند تا میبیند که AddUp در زیر تعریف شده است. درنتیجه وارد تعریف داخل متد میشود و کارهای خواسته شده را انجام میدهد و مجدداً به برنامه باز میگردد.
در بخش بعدی، با امکانات بیشتری از متدها آشنا خواهید شد.
جهت دریافت فایل PDF این بخش آموزشی، اینجا را کلیک کنید.
