کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش متدها در سی شارپ

دوره آموزش برنامه نویسی C#

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

آموزش متدها در سی شارپ

یک متد گروهی از statement ها می باشد که یک تکلیف را با هم انجام می دهند. هر برنامه C# حداقل یک گروه با یک متد دارد که Main نامیده می شود.

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

متد را تعریف کنید

متد را نام گذاری کنید

 

تعریف متدها در C#

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

 < Access Specifier> <Return Type> <Method Name>(Parameter List)
        {
           Method Body
        }

در زیر عناصر مختلف یک متد را مشاهده می کنید.

تصریح کننده ی اکسس (Access Specifier) : قابلیت رویت یک متغیر یا یک متد از گروه دیگر را مشخص می کند.

نوع بازگشتی (Return type) : یک متد ممکن است یک مقدار را بازگرداند. Return type نوع داده از مقداری می باشد که متد بازمی گرداند. اگر متد هیچ مقداری را بازنگرداند، return type از نوع void می باشد.

نام متد (method name) : یک تشخیص دهنده ی منحصر به فرد و از نوع هوشمند می باشد. نمی تواند مانند دیگر تشخیص دهنده ها که در گروه اعلام شد، باشد.

لیست پارامتر (parameter list) : محصور شده در پرانتز، پارامتر ها برای ارسال و یا دریافت داده از یک متد استفاده می شوند. این لیست مربوط می شود به نوع، ترتیب و تعداد پارامتر های یک متد. پارامتر ها گزینشی می باشند که ممکن است یک متد هیچ پارامتری نداشته باشد.

بدنه متد (method body) : شامل مجموعه ای از راهنمایی ها می شود که برای کامل کردن فعالیت های ضروری لازم می باشد.

مثال

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

 class NumberManipulator
{
          
public int FindMax(int num1, int num2)
           {
             
/* local variable declaration */
              int result;
             
if (num1 > num2)
                 result = num1;
             
else
       
         result = num2;
             
return
result;
           }
           ...
        }

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

شما می توانید یک متد را با استفاده از نام آن فراخوانی کنید. برنامه ی زیر مطلب را توضیح می دهد.

 using System;
        namespace CalculatorApplication
        {
          
class NumberManipulator
   {
             
public int FindMax(int num1, int num2)
              {
                
/* local variable declaration */
                 int result;
                
if (num1 > num2)
                    result = num1;
                
else
        
            result = num2;
                
return result;
              }
             
static void Main(string[] args)
              {
                
/* local variable definition */
                 int a = 100;
                
int b = 200;
                
int ret;
                 NumberManipulator n =
new NumberManipulator();
                
//calling the FindMax method
       
         ret = n.FindMax(a, b);
                 Console.WriteLine(
"Max value is : {0}"
, ret );
                 Console.ReadLine();
              }
           }

وقتی که برنامه ی بالا کامپایل شده و اجرا می شود، نتیجه ی زیر را تولید می کند.

 Max value is : 200

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

  using System;
        namespace CalculatorApplication
        {
           
class NumberManipulator
    {
               
public int FindMax(int num1, int num2)
                {
                   
/* local variable declaration */
                    int result;
                   
if (num1 > num2)
                        result = num1;
                   
else
       
                result = num2;
                   
return result;
                }
            }
           
class Test
    {
               
static void Main(string[] args)
                {
                   
/* local variable definition */
                    int a = 100;
                   
int b = 200;
                   
int ret;
                    NumberManipulator n =
new NumberManipulator();
                   
//calling the FindMax method
       
            ret = n.FindMax(a, b);
                    Console.WriteLine(
"Max value is : {0}"
, ret );
                    Console.ReadLine();
                }
            }
        }

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

Max value is : 200

فراخوانی بازگشتی متد (Recruisive method call)

یک متد می تواند خود را فرا بخواند که این فرایند به عنوان recursive شناخته شده است. در ادامه مثالی است که فاکتوریل را برای متد هایی مساحبه می کند که عملکرد بازگشتی استفاده می کنند.

 using System;
        namespace CalculatorApplication
        {
           
class NumberManipulator
    {
               
public int factorial(int num)
                {
                   
/* local variable declaration */
                    int result;
                   
if (num == 1)
                    {
                       
return 1;
                    }
                   
else
       
            {
                        result = factorial(num -
1) * num;
                       
return result;
                    }
                }
               
static void Main(string[] args)
                {
                    NumberManipulator n =
new NumberManipulator();
                   
//calling the factorial method
       
            Console.WriteLine("Factorial of 6 is : {0}", n.factorial(6));
                    Console.WriteLine(
"Factorial of 7 is : {0}", n.factorial(7));
                    Console.WriteLine(
"Factorial of 8 is : {0}", n.factorial(8
));
                    Console.ReadLine();
                }
            }
        }

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

Factorial of 6 is: 720
        Factorial of 7 is: 5040
        Factorial of 8 is: 40320

انتقال پارامترها به متد

وقتی که متد با پارامترها فراخوانده می شود، لازم است که پارامترها را به متد منتقل کنید. در C# سه روش برای انتقال پارامترها 
به متد وجود دارد.

 Mechanism

Description

Value parameters

این متد مقدار واقعی یک شناسه را در پارامتر فرمال عملکرد کپی می کند. در این مورد تغییرات اعمال شده بر پارامتر درون عملکرد هیچ تاثیری روی شناسه ندارند.  

Reference parameters

این متد مرجع را در لوکیشن حافظه ی یک شناسه در پارامتر فرمال کپی می کند. این بدین معناست که تغییرات اعمال شده روی پارامتر، شناسه را تحت تاثیر می گذارد.

Output parameters

این متد به بازگشت بیشتر از یک مقدار کمک می کند.

 

1394/07/27 12454 2010
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...