متد
متدها به شما اجازه میدهند که یک رفتار یا وظیفه را تعریف کنید و مجموعهای از کدها هستند که در هر جای برنامه میتوان از آنها استفاده کرد. متدها دارای آرگومانهایی هستند که وظیفه متد را مشخص میکنند. متد در داخل کلاس تعریف میشود. نمیتوان یک متد را در داخل متد دیگر تعریف کرد. وقتی که شما در برنامه یک متد را صدا میزنید برنامه به قسمت تعریف متد رفته و کدهای آن را اجرا میکند. در سی شارپ متدی وجود دارد که نقطه آغاز هر برنامه است و بدون آن برنامهها نمیدانند با ید از کجا شروع شوند، این متد Main() نام دارد.
گاهی اوقات دو کلمه پارامتر و آرگومان به یک منظور به کار میروند. سادهترین ساختار یک متد به صورت زیر است :
returnType MethodName(Parameter List) { code to execute; }
به برنامه ساده زیر توجه کنید. در این برنامه از یک متد برای چاپ یک پیغام در صفحه نمایش استفاده شده است :
1: using System; 2: 3: public class Program 4: { 5: static void PrintMessage() 6: { 7: Console.WriteLine("Hello World!"); 8: } 9: 10: public static void Main() 11: { 12: PrintMessage(); 13: } 14: }
Hello World!
در خطوط 8-5 یک متد تعریف کردهایم. مکان تعریف آن در داخل کلاس مهم نیست. به عنوان مثال میتوانید آن را زیر متد Main() تعریف کنید. میتوان این متد را در داخل متد دیگر صدا زد (فراخوانی کرد). متد دیگر ما در اینجا متد Main() است که میتوانیم در داخل آن نام متدی که برای چاپ یک پیغام تعریف کردهایم (یعنی متد PrintMessage()) را صدا بزنیم. متد Main() به صورت static تعریف شده است. برای اینکه بتوان از متد PrintMessage()در داخل متد Main() استفاده کنیم باید آن را به صورت static تعریف کنیم.
کلمه static به طور ساده به این معناست که میتوان از متد استفاده کرد بدون اینکه از کلاس نمونهای ساخته شود. متد Main() همواره باید به صورت static تعریف شود چون برنامه فوراً و بدون نمونه سازی از کلاس از آن استفاده میکند. وقتی به مبحث برنامه نویسی شی گرا رسیدید به طور دقیق کلمه staticمورد بحث قرار میگیرد. برنامه class(مثال بالا) زمانی اجرا میشود که برنامه دو متدی را که تعریف کردهایم را اجرا کند و متد Main() به صورت static تعریف شود. درباره این کلمه کلیدی در درسهای آینده مطالب بیشتری میآموزیم. در تعریف متد بالا بعد از کلمه static کلمه کلیدی void آمده است که نشان دهنده آن است که متد مقدار برگشتی ندارد. در درس آینده در مورد مقدار برگشتی از یک متد و استفاده از آن برای اهداف مختلف توضیح داده خواهد شد. نام متد ما PrintMessage() است.
به این نکته توجه کنید که در نامگذاری متد از روش پاسکال (حرف اول هر کلمه بزرگ نوشته میشود) استفاده کردهایم. این روش نامگذاری قراردادی است و میتوان از این روش استفاده نکرد، اما پیشنهاد میشود که از این روش برای تشخیص متدها استفاده کنید. بهتر است در نامگذاری متدها از کلماتی استفاده شود که کاران متد را مشخص میکند مثلاً نامهایی مانند GoToBed یا OpenDoor . همچنین به عنوان مثال اگر مقدار برگشتی متد یک مقدار بولی باشد میتوانید اسم متد خود را به صورت یک کلمه سوالی انتخاب کنید مانند IsLeapyear یا IsTeenager…ولی از کذاشتن علامت سؤال در آخر اسم متد خودداری کنید. دو پرانتزی که بعد از نام میآید نشان دهنده آن است که نام متعلق به یک متد است. در این مثال در داخل پرانتزها هیچ چیزی نوشته نشده چون پارامتری ندارد. در درسهای آینده در مورد متدها بیشتر توضیح میدهیم.
بعد از پرانتزها دو آکولاد قرار میدهیم که بدنه متد را تشکیل میدهد و کدهایی را که میخواهیم اجرا شوند را در داخل این آکولادها مینویسیم. در داخل متد Main() متدی را که در خط 12 ایجاد کردهایم را صدا میزنیم. برای صدا زدن یک متد کافیست نام آن را نوشته و بعد از نام پرانتزها را قرار دهیم.
اگر متد دارای پارامتر باشد باید شما آرگومانها را به ترتیب در داخل پرانتزها قرار دهید. در این مورد نیز در درسهای آینده توضیح بیشتری میدهیم. با صدا زدن یک متد کدهای داخل بدنه آن اجرا میشوند. برای اجرای متد PrintMessage() برنامه از متد Main() به محل تعریف متد PrintMessage() میرود. مثلاً وقتی ما متد PrintMessage() را در خط 12 صدا میزنیم برنامه از خط 12 به خط 7، یعنی جایی که متد تعریف شده میرود. اکنون ما یک متد در برنامه class داریم و همه متدهای این برنامه میتوانند آن را صدا بزنند.
سلام
واقعا شیرین و رسا توضیح دادین
خداقوتتون بده
سلام، مرسی، نظر لطفتونه
آقا فهمیدم
باید از این لینک استفاده میکردم،خیلی ممنون
http://www.w3-farsi.com/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%81%D8%B1%D9%85-%D9%87%D8%A7%DB%8C-%DA%86%D9%86%D8%AF-%DA%AF%D8%A7%D9%86%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE/
سلام خسته نباشید
من اگه بخوام برای برنامه ام ابتدا یک صفحه لاگین قرار بدم که رمز عبور و پسوورد بگیره(فقط پوسته اش مهمه و ذخیره یا درست بودنش و اتصال به پایگاه داده و … مهم نیست)
فقط میخوام پنجره باشه و بعد از وارد کردن یوزر و پسوورد و زدن ok بره روی یه فرم دیگه
میشه کمک کنید از چه متدی استفاده کنم؟
اصلا با متد ها میشه؟
گرامر تعريف يك متد به صورت زير است:
(Parameter List)
{ Method Body }
در زير عناصر مختلفي از يك متد ارايه شده است:
Access Specifier : اين قابل مشاهده بودن يك متغير يا يك متد از كلاسي ديگر را تعيين مي كند.
Return type : يك متد ممكن است مقداري را برگرداند. اين نوع بازگشتي نوع داده اي از مقداري است كه متد بر مي
گرداند. اگر متد مقداري را برنگرداند، مقدار بازگشتي void خواهد بود.
Method name : نام متد يك شناسه منحصربفرد مي باشد و حساس به حروف است. آن نمي تواند مشابه ساير
شناسه هاي تعريف شده در كلاس باشد.
Parameter list : بين پرانتزها، پارامترهايي براي عبور و دريافت داده از يك متد استفاده مي شوند. اين ليست پارامتر
به نوع، ترتيب و تعداد پارامترهاي يك متد اشاره دارد. پارامترها اختياري هستند؛ به اين معنا كه، يك متد ممكن است
شامل هيچ پارامتري نباشد.
Method body : اين شامل مجموعه اي از دستورات موردنياز براي تكميل فعاليت موردنياز است.
مرسی ، در درس های بعدی در مورد اینایی که فرمودین توضیح دادم. ولی بازم ممنون میشم نواقص رو بفرمایید تا اصلاح کنم.
با تشکر
سلام دوست عزیز…ممنون…به دوستاتون معرفی بفرمایید.
تا حالا بهتر از این آموزش C# ندیده بودم.
خدا خیرتون بده.