سی شارپ

متدها در سی شارپ

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

class class_name { 
... ...
 <Access_Specifier>
 <Return_Type>
 Method_Name(<Parameters>)
 { // دستورات اجرایی } 
... ... 
}

کد بالا را مشاهده کردید، یک روش در کلاس با پارامترهای مختلف تعریف کردم
Access_Specifier – برای تعریف یک سطح دسترسی یا عمومی یا خصوصی و غیره استفاده می شود تا دیگر کلاسها بتوانند به روش دسترسی داشته باشند. اگر ما هیچ یک از اصلاح کننده های دسترسی را درج نکنیم، به طور پیش فرض آن خصوصی شناخته میشود.
Return_Type – برای مشخص کردن نوع مقدار روش بازگشتی می تواند استفاده شود. در صورتی که اگر روش هیچ مقدار بازگشتی نداشته باشد، باید نام void را به عنوان نوع return نامگذاری کنیم.
نام Method_Name – باید یک نام منحصر به فرد برای شناسایی روش در یک کلاس باشد.
Parameters – پارامترهای روش برای ارسال یا دریافت داده ها از روش استفاده می شوند و پارامترهای این روش در داخل پرانتز قرار می گیرند و با کاما جدا می شوند. در صورتی که اگر برای یک روش برای پارامترها نیاز نباشد، باید یک روش را با پرانتزهای خالی تعریف کنیم
درسی شارپ هر دو روش و توابع یکسان هستند، هیچ تفاوتی وجود ندارد و این فقط یک اصطلاح مختلف برای انجام همان کار در c # است
در زیر نمونه هایی از تعریف روش های مختلف رو مینویسم

class Users
 { 
public void GetUsers() 
{ 
// دستورات اجرایی 
}
 private void InsertUserDetails(string name, int age) 
{ // دستورات اجرایی

}
 protected string GetUserDetails(int userid)
 { 
// دستورات اجرایی
}
 }

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

using System;
 namespace Tutlane 
{ 
class Program 
{
 static void Main(string[] args)
 {
 Program p = new Program(); 
string result = p.GetUserDetails("Suresh Dasari", 31);
 Console.WriteLine(result); 
Console.WriteLine("Press Enter Key to Exit.."); 
Console.ReadLine();
 }
 public string GetUserDetails(string name, int age)
 { 
string info = string.Format("Name: {0}, Age: {1}", name, age); 
return info; 
}
 }
 }

خروجی==>
اگر از مثال بالا متوجه شدید، ما یک روش به نام GetUserDetails ایجاد کردیم و یک پارامتر را برای انجام عملیات مورد نیاز ایجاد کردیم و ما به روش GetUserDetails دسترسی پیدا می کنیم و با ایجاد مثال از کلاس Program در روش Main برای نمایش نتیجه می رویم.
هنگامی که ما برنامه C # بالا را اجرا میکنیم، نتیجه را همانطور که در تصویر زیر نشان داده شده است دریافت خواهید کرد

Name: Ali Ahmadi, Age: 31 
Press Enter Key to Exit..

در c #، اگر ما روش هایی با استاتیک ایجاد کنیم، می توانیم این روش ها را از سطح کلاس مستقیما بدون ایجاد یک شیء فراخوانی کنیم.

اگر در مثال بالا مشاهده می کنید، روش اصلی استاتیک است و ما بوسیله ایجاد یک نمونه از کلاس برنامه با روش GetUserDetails فراخوانی می کنیم. در عوض، اگر ما یک روش با استاتیک ایجاد کنیم، می توانیم به طور مستقیم به این روش ها در متد Main () بدون ایجاد یک نمونه از شیء دسترسی پیدا کنیم.
 در زیر نمونه ای از ایجاد روش هایی با استاتیک برای دسترسی به این روش ها به طور مستقیم در روش Main () بدون ایجاد یک نمونه از شی در c # است.

using System;

 

namespace Tutlane

{

    class Program

    {

        static void Main(string[] args)

        {

            GetUserDetails();

            Console.WriteLine("Press Enter Key to Exit..");

            Console.ReadLine();

        }

        public static void GetUserDetails()

        {

            string name = "Suresh Dasari";

            int age = 31;

            Console.WriteLine("Name: {0}, Age: {1}", name, age);

        }

    }

}

خروجی

Name: Saeed Mohammadi, Age: 31
Press Enter Key to Exit..

فرض کنید اگر ما یک روش با پارامترهای c # ایجاد کنیم، پس ما باید یک پارامتر را به آن روش منتقل کنیم در حالی که آن را در برنامه ما فراخوانی می کنیم.
 در c # ما روش های مختلفی برای انتقال پارامتر به روش وجود دارد
Value Parameters
Reference Parameters
Output Parameters
یه نمونه برای Value Parameters

using System;

 

namespace Tutlane

{

    class Program

    {

        static void Main(string[] args)

        {

            int x = 10;

            Console.WriteLine("Variable Value Before Calling the Method: {0}", x);

            Multiplication(x);

            Console.WriteLine("Variable Value After Calling the Method: {0}", x);

            Console.WriteLine("Press Enter Key to Exit..");

            Console.ReadLine();

        }

        public static void Multiplication(int a)

        {

            a *= a;

            Console.WriteLine("Variable Value Inside the Method: {0}", a);

        }

    }

}

خروجی

Motaghayer Gab Az Farakhani: 10
Motaghayer Bad  Az Farakhani: 100
Meghdar Motaghayer : 10
Press Enter Key to Exit..

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *