مشخصات مقاله
-
2010
-
0.0
-
12454
-
0
-
0
آموزش متدها در سی شارپ
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
آموزش متدها در سی شارپ
یک متد گروهی از 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 |
این متد به بازگشت بیشتر از یک مقدار کمک می کند. |