متد یک بلوک از کد است که تنها زمانی اجرا می شود که نام آن را صدا بزنید.

می توانید داده هایی را که به عنوان پارامتر شناخته می شوند به یک متد منتقل کنید.

متد ها برای انجام اقدامات خاصی استفاده می شوند ، و همچنین به عنوان توابع شناخته می شوند .

چرا باید از متد ها استفاده کرد؟

برای استفاده مجدد از کد: یک بار کد را تعریف کنید و بارها از آن استفاده کنید.

در درس قبل با آرایه ها در سی شارپ آشنا شدید برای مشاهده کلیک کنید.


یک متد ایجاد کنید

یک متد با نام متد تعریف می شود و پس از آن پرانتز باز و بسته قرار میگیرد () . سی شارپ برخی از متدهای از پیش تعریف شده را ارائه می دهد ، که قبلاً با آنها آشنا هستید مانند: Main()، اما همچنین می توانید متدهای خاص خود را برای انجام اقدامات خاصی ایجاد کنید:

مثال۱:

داخل کلاس Program یک متد ایجاد کنید:

class Program
{
  static void MyMethod() 
  {
    // code to be executed
  }
}

توضیحات مثال ۱:

  • MyMethod() نام متد است
  • staticبه این معنی است که متد مربوط به کلاس Program است و نه یک شی از کلاس Program. بعداً در این مقاله آموزشی درباره اشیا و نحوه دستیابی به متدها از طریق اشیا بیشتر خواهید آموخت.
  • voidبه این معنی است که این متد مقدار بازگشتی ندارد. در ادامه در این مقاله درباره مقادیر بازگشتی بیشتر خواهید آموخت.

توجه: در سی شارپ ، روش خوبی است که هنگام نامگذاری متد ها ، با یک حرف بزرگ شروع کنید ، زیرا خواندن کد را آسان می کند.


یک متد را فراخوانی کنید

برای فراخوانی (اجرای) یک متد ، نام متد را به همراه دو پرانتز () و یک نقطه ویرگول بنویسید .

در مثال زیر ، MyMethod()برای چاپ متن (عمل) استفاده می شود ، درصورتی که فراخوانی شود:

مثال۲:

در داخل Main متد  myMethod را فراخوانی کنید:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod()
        {
            Console.WriteLine("I just got executed!");
        }

        static void Main(string[] args)
        {
            MyMethod();
        }

        // Outputs "I just got executed!"
    }
}

 

یک متد را می توان چندین بار فراخوانی کرد:

مثال۳:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod()
        {
            Console.WriteLine("I just got executed!");
        }

        static void Main(string[] args)
        {
            MyMethod();
            MyMethod();
            MyMethod();
        }

    }
}

 

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

اطلاعات را می توان به عنوان پارامتر به متد ها منتقل کرد. پارامترها به عنوان متغیرهای درون متد عمل می کنند.

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

مثال زیر دارای متدی است که fnamestring نامیده شده را به عنوان پارامتر در نظر می گیرد. وقتی متد فراخوانی می شود ، از ما یک نام دریافت می کند که از این متد برای چاپ نام کامل استفاده می شود:

مثال۴:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod(string fname)
        {
            Console.WriteLine(fname + " Refsnes");
        }

        static void Main(string[] args)
        {
            MyMethod("Liam");
            MyMethod("Jenny");
            MyMethod("Anja");
        }

    }
}

 

وقتی یک پارامتر به متد منتقل می شود ، آن را آرگومان می نامند . بنابراین ، از مثال بالا: fnameیک پارامتر است ، در حالی که Liam، JennyAnja و آرگومان هستند .


مقدار پارامتر پیش فرض

با استفاده از علامت برابر ( =) می توانید از مقدار پارامتر پیش فرض نیز استفاده کنید . اگر متد را بدون استدلال فراخوانی کنیم ، از مقدار پیش فرض استفاده می کند (“نروژ”):

مثال۵:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod(string country = "Norway")
        {
            Console.WriteLine(country);
        }

        static void Main(string[] args)
        {
            MyMethod("Sweden");
            MyMethod("India");
            MyMethod();
            MyMethod("USA");
        }

    }
}

 

یک پارامتر با مقدار پیش فرض ، اغلب به عنوان ” پارامتر اختیاری ” شناخته می شود . از مثال بالا ، countryیک پارامتر اختیاری است و "Norway"مقدار پیش فرض است.


چند پارامتر

می توانید پارامترهای دلخواه خود را داشته باشید:

مثال۶:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod(string fname, int age)
        {
            Console.WriteLine(fname + " is " + age);
        }

        static void Main(string[] args)
        {
            MyMethod("Liam", 5);
            MyMethod("Jenny", 8);
            MyMethod("Anja", 31);
        }

    }
}

 

توجه داشته باشید که وقتی با چندین پارامتر کار می کنید ، فراخوانی متد باید همان تعداد پارامتر را داشته باشد و آرگومان ها باید به همان ترتیب منتقل شوند.


مقادیر برگشتی

voidکلمه کلیدی مورد استفاده در مثال ۶ ، نشان می دهد که متد مقداری را برنمیگرداند. اگر می خواهید متد مقداری را برگرداند ، می توانید از نوع داده اولیه (مانند int یا double) به جای voidاستفاده کنید و از کلمه کلیدی  return  داخل روش استفاده کنید:

مثال۷:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static int MyMethod(int x)
        {
            return 5 + x;
        }

        static void Main(string[] args)
        {
            Console.WriteLine(MyMethod(3));
        }

    }
}

 

این مثال حاصل جمع دو پارامتر یک متد است :

مثال۸:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static int MyMethod(int x, int y)
        {
            return x + y;
        }

        static void Main(string[] args)
        {
            Console.WriteLine(MyMethod(5, 3));
        }

    }
}

 

همچنین می توانید نتیجه را در یک متغیر ذخیره کنید (توصیه می شود ، زیرا خواندن و نگهداری آن آسان تر است):

مثال۹:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static int MyMethod(int x, int y)
        {
            return x + y;
        }

        static void Main(string[] args)
        {
            int z = MyMethod(5, 3);
            Console.WriteLine(z);
        }

    }
}

 


آرگومان های نامگزاری شده

همچنین می توان آرگومان ها را با key: valueبه متد ارسال کرد.

به این ترتیب ، ترتیب آرگومان ها مهم نیست:

مثال۱۰:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod(string child1, string child2, string child3)
        {
            Console.WriteLine("The youngest child is: " + child3);
        }

        static void Main(string[] args)
        {
            MyMethod(child3: "John", child1: "Liam", child2: "Liam");
        }

    }
}

 

آرگومانهای نامگذاری شده مخصوصاً زمانی مفید هستند که چندین پارامتر با مقادیر پیش فرض داشته باشید و فقط می خواهید یکی از آنها را هنگام فراخوانی مشخص کنید:

مثال۱۱:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static void MyMethod(string child1 = "Liam", string child2 = "Jenny", string child3 = "John")
        {
            Console.WriteLine(child3);
        }

        static void Main(string[] args)
        {
            MyMethod("child3");
        }

    }
}

 

بارگذاری بیش از حد متد

با بارگذاری بیش از حد متد ، چندین متد می توانند نام یکسانی با پارامترهای مختلف داشته باشند:

مثال۱۲:

int MyMethod(int x)
float MyMethod(float x)
double MyMethod(double x, double y)

 

مثال زیر را در نظر بگیرید ، که دارای دو روش است که اعداد از نوع مختلف را اضافه می کند:

مثال۱۳:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static int PlusMethodInt(int x, int y)
        {
            return x + y;
        }

        static double PlusMethodDouble(double x, double y)
        {
            return x + y;
        }

        static void Main(string[] args)
        {
            int myNum1 = PlusMethodInt(8, 5);
            double myNum2 = PlusMethodDouble(4.3, 6.26);
            Console.WriteLine("Int: " + myNum1);
            Console.WriteLine("Double: " + myNum2);
        }

    }
}

 

به جای تعریف دو متد که باید همان کار را انجام دهند ، بهتر است یکی را بیش از حد بارگذاری کنید.

در مثال زیر، ما در متد  PlusMethod بارگزاری بیش از حد را برای  دو متغیر  int و double به کار برده ایم:

مثال۱۴:

کد های تصویر:

using System;

namespace methods_in_c_sharp
{
    class Program
    {
        static int PlusMethod(int x, int y)
        {
            return x + y;
        }

        static double PlusMethod(double x, double y)
        {
            return x + y;
        }

        static void Main(string[] args)
        {
            int myNum1 = PlusMethod(8, 5);
            double myNum2 = PlusMethod(4.3, 6.26);
            Console.WriteLine("Int: " + myNum1);
            Console.WriteLine("Double: " + myNum2);
        }

    }
}

 

توجه: چندین متد می توانند نام یکسانی داشته باشند به شرطی که تعداد و / یا نوع پارامترها متفاوت باشد.

 

در آموزش بعدی با کلاس ها و اشیاء در سی شارپ آشنا می شوید. برای مشاهده کلیک کنید.

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