عزیزاین و همراهان گرامی حا ل شماخوب و خوش هست.؟ با اموزش امروز که در مورد ljnih nv ز# درخدمت شما هستم.
فیلدها در واقع وظیفه ی توصیف کلاس را بر عهده دارند. برای مثال، کلاسی به نام House توسط جنبه هایی همچون تعداد اتاق های خواب (bedrooms)، نوع ملک (property type) و ارزش (value) آن توصیف می شود.
?
۱
۲
۳
۴
۵

public class House
‎{‎
‎ public char propertyType;‎
‎ public uint bedrooms;‎
}

علاوه بر این، شی می تواند عملیاتی و یا انتسابی معین انجام دهد. عملیاتی که یک کلاس برای شما انجام می دهد، function یا method خوانده می شود. متد اساساً بخشی از کد است، که در راستای قابلیت ها و کاربرد کلاس، یکی از جزئیات عملیات را ایفا می کند.
مبانی متدها

Microsoft Visual Studio را راه اندازی کنید.
برای ایجاد برنامه ی کاربردی جدید، به main menu مراجعه کرده و گزینه هایFile -> New Project انتخاب کنید.
گزینه ی Empty Project را از لیست میانی انتخاب کنید.
اسم را به DepartmentStore2 تغییر داده، سپس ok را کلیک کنید.
در main menu گزینه های Project -> Add New Item… را انتخاب کنید.
در فهرست میانی پنجره ی محاوره ی Add New Item، گزینه ی Code File را انتخاب کنید.
اسم مورد نظر را به StoreItem تغییر داده، بعد Add را کلیک کنید.
در فایل پیش رو دستورات زیر را تایپ کنید.
?
۱
۲
۳
۴
۵
۶
۷

class StoreItem
{
public long itemNumber;‎
‎ public string itemName;‎
‎ public string size;‎
‎ public decimal unitPrice;‎
}
به منظور ایجاد code file، در Solution Explorer، روی DepartmentStore2 -> Add -> New Item… راست کلیک کنید.
در لیست میانی پنجره ی محاوره Add New Item، Code File را کلیک کنید.
اسم را به DepartmentStore تغییر داده و روی Add کلیک کنید.
در فایل خالی که در اختیارتان قرار می گیرد، عبارات زیر را تایپ کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴

class Exercise
{
void ShowEmployee(long employeeNumber, string fullName, char gender, double hourlySalary)
{
System.Console.Write(“Employee #: “);
System.Console.WriteLine(employeeNumber);
System.Console.Write(“Full Name: “);
System.Console.WriteLine(fullName);
System.Console.Write(“Gender: “);
System.Console.WriteLine(gender);
System.Console.Write(“Hourly Salary: “);
System.Console.WriteLine(hourlySalary);
}
}
برای مشاهده ی نتیجه برنامه را اجرا کنید.
پنجره ی DOS را بسته و به محیط برنامه نویسی بازگردید.

ساختن متد

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

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

در صورتی که اسم متد متشکل از چند کلمه باشد، حروف اول تمام کلمات با حرف بزرگ نمایش داده می شود.

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

یکی از کارهای متد تخصیص دادن یک مقدار معین در برنامه است. بدین ترتیب پس از این کار، متد می تواند مقداری را فراهم کند. در نتیجه، متد نتیجه را بر می گرداند. چنانچه نتیجه ای از متد نام برده حاصل نشد، به آن void می گویند. نوعی (type) که متد ارائه می دهد (یا باز می گرداند)، در سمت چپ اسم متد درج می شود. چنانچه متد نتیجه ای دربر نداشت، در سمت چپ آن void تایپ کنید. عملیات تخصیص که متد نقل می کند، داخل {} محصور می شود.

مثال:
?
۱
۲
۳
۴
۵
۶
۷
۸

public class House
‎{‎
‎ public char propertyType;‎
‎ public uint bedrooms;‎
‎ void Display()‎
‎ {‎
‎ }‎
‎}

پرکاربرد ترین متد زبان برنامه نویسی C#، متد Main نامیده می شود.

توجه : از این بخش به بعد، برای اشاره به متدی که متعلق به یک کلاس است از ClassName.MethodName استفاده می کنیم.
سطح دسترسی متد

درست مانند متغیر عضو

اگر قرار است متد تنها برای اعضای خود آن کلاس قابل دسترسی باشد، متد گفته شده را با کلید واژه یprivate علامت گذاری کنید (یا می توان هیچ گونه تنظیم کننده ی دسترسی / acces modifier خاصی لحاظ نکرد).

به منظور این که متد برای تمامی اعضای کلاس و دیگر بخش های همین برنامه (نه خارج از این برنامه) قابل دسترسی باشد، آن را با کلید واژه ی internal تعریف کنید.

چنانچه مایل هستید متدی برای تمامی اعضای این کلاس، دیگر بخش های همین برنامه و اجزای برنامه های دیگر قابل دستیابی باشد، کافی است متد بیان شده را با کلید واژه ی public تعریف کنید.

پس از ایجاد متد، می توان به تعریف کارکرد آن (در بدنه ی متد، داخل علامت {}) پرداخت. برای مثال، می توان متغیر های عضو را داخل پرانتزهای System.Console.Write() یا System.Console.WriteLine() نوشت. به مثال های زیر توجه کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴

public class House
‎{‎
‎ public char propertyType;‎
‎ public uint bedrooms;‎
‎ internal void Display()‎
‎ {‎
‎ System.Console.WriteLine(“=//= Altair Realtors =//=”);‎
‎ System.Console.WriteLine(“Properties Inventory”); ;‎
‎ System.Console.Write(“Property Type: “);‎
‎ System.Console.WriteLine(PropertyType);‎
‎ System.Console.Write(“Bedrooms: “);‎
‎ System.Console.WriteLine(Bedrooms);‎
‎ }‎
‎}‎

می توانید هر تعداد متد که لازم است، به همین ترتیب ایجاد کنید.
فراخوانی متد

پس از ساختن متد، می توان از داخل یا خارج کلاس به آن دسترسی پیدا کرد. فراخوانی یک متد، در واقع همان دسترسی پیدا کردن به متد است. برای این منظور، از عملگر نقطه کمک گرفته می شود. بر خلاف فیلد، لازم است به دنبال اسم کلاس پرانتز گذاشته شود. نمونه ی آن را در مثال زیر مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵

public class House
‎{‎
‎ public char propertyType;‎
‎ public uint bedrooms;‎
‎ internal void Display()‎
‎ {‎
‎ System.Console.WriteLine(“=//= Altair Realtors =//=”);‎
‎ System.Console.WriteLine(“Properties Inventory”); ;‎
‎ System.Console.Write(“Property Type: “);‎
‎ System.Console.WriteLine(propertyType);‎
‎ System.Console.Write(“Bedrooms: “);‎
‎ System.Console.WriteLine(bedrooms);‎
‎ }‎
}‎
public class Program
‎{‎
‎ static void Main()‎
‎ {‎
‎ var property = new House();‎
‎ property.propertyType = ‘S’;‎
‎ property.bedrooms = 4;‎
‎ ‎
‎ property.Display();‎
‎ }‎
}‎

نتیجه ی زیر به دست می آید.
?
۱
۲
۳
۴
۵

=//= Altair Realtors =//=‎
Properties Inventory
Property Type: S
Bedrooms: 4‎
Press any key to continue…‎
نحوه ی ایجاد متدهای یک کلاس

در main menu، گزینه های Window -> StoreItem.cs را انتخاب کنید. فایل مورد نظر باز می شود.
برای افزودن متد به کلاس، فایل را به صورت زیر اصلاح کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷

public class StoreItem
‎{‎
‎ public long itemNumber;‎
‎ public string itemName;‎
‎ public string size;‎
‎ public decimal unitPrice;‎
‎ ‎
‎ public void CreateItem()‎
‎ {‎
‎ itemNumber = 792475;‎
‎ itemName = “Aramis Gentlemen Collection 3.4oz JHL Custom Blended ‎Cologne Spray”;‎
‎ size = “3.4oz”;‎
‎ unitPrice = 48.00m;‎
‎ }‎
‎ public void Describe()‎
‎ {‎
‎ System.Console.WriteLine(“Department Store”);‎
‎ System.Console.Write(“Item #: “);‎
‎ System.Console.WriteLine(itemNumber);‎
‎ System.Console.Write(“Item Name: “);‎
‎ System.Console.WriteLine(itemName);‎
‎ System.Console.Write(“Item Size: “);‎
‎ System.Console.WriteLine(size);‎
‎ System.Console.Write(“Unit Price: “);‎
‎ System.Console.WriteLine(unitPrice);‎
‎ }‎
‎}‎
main menu را باز کرده و روی گزینه های Window -> DepartmentStore.cs کلیک کنید.
فایل مورد نظر را به صورت زیر تغییر دهید.
?
۱
۲
۳
۴
۵
۶
۷

public class DepartmentStore
{
public long itemNumber;‎
‎ public string itemName;‎
‎ public string size;‎
‎ public decimal unitPrice;‎
}

اکنون، برنامه را اجرا کنید. نتیجه ی زیر حاصل می گردد.
?
۱
۲
۳
۴
۵

Department Store
Item #: 792475‎
Item Name: Aramis Gentlemen Collection 3.4oz JHL Custom Blended Cologne Spray
Item Size: 3.4oz
Unit Price: 48.00‎

۶٫ پنجره ی DOS را بسته و به محیط برنامه نویسی بازگردید.
متدی که مقدار باز می گرداند

پس از این که متدی مقداری را حمل کرد، باید محصول و نتیجه ی آن را در اختیار دیگر متدها و کلاس ها قرار دهد، در این صورت متد دیگر نمی تواند void یا بی مقدار باشد و سرانجام باید مقداری را بازگرداند. برای تعریف متدی که مقدار باز می گرداند، باید نوع بازگشتی (return type) را در سمت چپ اسم متد قرار داد.

مثال:
?
۱
۲
۳
۴
۵
۶

class Exercise
‎{‎
‎ double Operate()‎
‎ {‎
‎ }‎
‎}

همچنین می توانید علامت سوأل به نوع داده ی مورد نظر خود اضافه کنید. مثال زیر را در نظر بگیرید.
?
۱
۲
۳
۴
۵
۶

class Exercise
‎{‎
‎ double? Operate()‎
‎ {‎
‎ }‎
}

در بدنه ی متد، می توان چند متغیر تعریف کرد که فقط توسط خود آن متد مورد استفاده قرار می گیرند. متغیری که در بدنه ی متد تعریف می شود، متغیر محلی نامیده می شود. متغیر محلی تنها از داخل متد قابل دسترسی است (نمی توان به آن خارج از کلاس دسترسی پیدا کرد). پس از تعریف متغیر محلی، متد بلافصله به آن دسترسی پیدا می کند و شما می توانید هر کاری که مناسب می دانید با آن انجام دهید. برای مثال می توانید پیش از استفاده، به متغیر محلی مقدار اختصاص دهید.

پس از این که متد وظیفه ی محوله را انجام داد، باید مقداری را ارائه دهد. برای این منظور باید ابتدا کلید واژه ی return را تایپ کرده و به دنبال آن مقداری را که متد باز می گرداند قرار دهید. مقدار بازگردانده شده باید با نوع بازگشتی متد یکی باشد. مثال زیر را در نظر بگیرید.
?
۱
۲
۳
۴
۵
۶
۷

class Exercise
‎{‎
‎ double Operate()‎
‎ {‎
return 24.55 ;‎
‎ }‎
‎}‎

اگر چه این نیز صحیح است.
?
۱
۲
۳
۴
۵
۶
۷

class Exercise
‎{‎
‎ double Operate()‎
‎ {‎
return 24.55 ;
‎ }‎
‎}

متد ممکن است عبارت (expression) بازگرداند، البته به شرط این که عبارت بیان شده مقداری تولید کند که با نوع بازگشتی هم خوانی داشته باشد. توجه خود را به مثال زیر جلب کنید.
?
۱
۲
۳
۴
۵
۶
۷

class Exercise
‎{‎
‎ double? Operate()‎
‎ {‎
return 24.55 * 4.16 ;
‎ }‎
‎}
بازگرداندن یک مقدار از متد

در فهرست گزینه ی اصلی، روی Window -> StoreItem.cs کلیک کنید.
فایل را به صورت زیر اصلاح کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷
۲۸
۲۹
۳۰
۳۱
۳۲

public class StoreItem
‎{‎
‎ public long itemNumber;‎
‎ public string itemName;‎
‎ public string size;‎
‎ public decimal unitPrice;‎ ‎ ‎
‎ public void CreateItem()‎
‎ {‎
‎ itemNumber = 792475;‎
‎ itemName = “Aramis Gentlemen Collection 3.4oz JHL Custom Blended ‎Cologne Spray”;‎
‎ size = “3.4oz”;‎
‎ unitPrice = 48.00m;‎
‎ }‎
‎ public decimal CalculateTotalValue()‎
‎ {‎
‎ return unitPrice;‎
‎ }‎ ‎ ‎
‎ public void Describe()‎
‎ {‎
‎ System.Console.WriteLine(“Department Store”);‎
‎ System.Console.Write(“Item #: “);‎
‎ System.Console.WriteLine(itemNumber);‎
‎ System.Console.Write(“Item Name: “);‎
‎ System.Console.WriteLine(itemName);‎
‎ System.Console.Write(“Item Size: “);‎
‎ System.Console.WriteLine(size);‎
‎ System.Console.Write(“Unit Price: “);‎
‎ System.Console.WriteLine(unitPrice);‎
‎ System.Console.Write(“Total Value: “);‎
‎ System.Console.WriteLine(CalculateTotalValue());‎
‎ }‎
}
برنامه را اجرا کرده تا نتیجه ی عملیات را مشاهده کنید.
پنجره ی DOS را بسته و به محیط برنامه نویسی خود بازگردید.

مقدمه ای بر تابع Main() یک برنامه ی کاربردی

تاکنون با تابع Main() (که هنگام ایجاد برنامه ی کاربردی جدید و با به کار بردن پنجره ی محاوره ی New Project و به صورت پیش فرض تعریف می شود) کار کردیم. در چنین پیاده سازی به صورت پیش فرض تابع Main() از نوع void می باشد. راه دیگری که برای پیاده سازی تابع Main() وجود دارد، این است که متد، از نوع integer باشد. همین قانون برای تمام متدهای نوع int. قابل اجرا است. تابع Main() می تواند هر نوع integer ای بازگرداند ( البته به شرط این که integer بازگشتی معتبر باشد).

مثال:
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴

class Exercise
‎{‎
‎ char HaveCharacter()‎
‎ {‎
‎ return ‘G’;‎
‎ }‎
‎ static int Main()‎
‎ {‎
‎ Exercise exo = new Exercise();‎
‎ System.Console.Write(“Character: “);‎
‎ System.Console.WriteLine(exo.HaveCharacter());‎
‎ return 244006;‎
‎ }‎
‎}

نتیجه ی زیر به دست می آید.
?
۱
۲

Character: G
Press any key to continue…‎
مبانی متدها (قسمت دوم)

به منظور ایجاد تابع Main با استفاده از skeleton code، روی آن بخشی که می خواهید تابع نام برده را اضافه کنید راست کلیک کرده، سپس گزینه ی Insert Snippet… را انتخاب کنید. حال، روی گزینه ی Visual C# دوبار کلیک کنید.

چنانچه مایلید تابع Main ای ایجاد کنید که مقداری باز نمی گرداند، روی svm دوبار کلیک کنید. (مخفف “static void Main”)
آموزش متدها در C#

به منظور ایجاد تابع Main ای که integer باز می گرداند، روی sim (مخفف”static int Main”) دوبار کلیک کنید.
بازگرداندن مقداری از تابع Main()

روی دکمه ی DepartmentStore.cs کلیک کرده تا به آن دسترسی پیدا کنید، سپس آن را به صورت زیر اصلاح کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱

public class DepartmentStore
‎{‎
‎ static int Main()‎
‎ {‎
‎ StoreItem si = new StoreItem();‎
‎ si.CreateItem();‎
‎ si.Describe();‎
‎ System.Console.ReadKey();‎
‎ return 0;‎
‎ }‎
‎}
برنامه را اجرا کرده تا نتیجه ی آن را ببینید.
پنجره ی DOS را بسته و به محیط برنامه نویسی بازگردید.

مبانی آرگومان های متد
بررسی اجمالی

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

درست مشابه متغیر، یک آرگومان با نوع مقدارش تعریف و نمایش داده می شود. برای مثال، متدی ممکن است به کاراکتر نیاز داشته باشد، در حالی که متدی دیگر به یک رشته نیاز دارد. حتی ممکن است متغیر دیگری به عدد اعشاری (decimal number) نیاز داشته باشد. به عبارت دیگر، متد یا کلاسی که متد دیگری را فرا می خواند، مسئول تامین مقدارهای مناسب و مورد نیاز است (البته یک متد ممکن است خود مکانیزم داخلی برای اعتبار سنجی چنین مقداری داشته باشد).

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

تصور کنید که می خواهیم متدی تعریف کنیم که طول ضلع یک مربع را نمایش دهد. چنین متدی به صورت زیر تعریف می شود.
?
۱
۲
۳
۴
۵
۶

class Exercise
‎{‎
‎ void ShowCharacter(char c)‎
‎ {‎
‎ }‎
‎}

در صورتی که نوع داده ی آرگومان از نوع اولیه بود، برای این که نشان دهیم نوع داده ی مزبور می تواند مقدار تهی (null value) داشته باشد، به آن علامت سوأل اضافه می کنیم. نمونه ی آن را در زیر مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶

class Exercise
‎{‎
‎ void ShowCharacter(char? c)‎
‎ {‎
‎‎ }‎
‎}

می توان در بدنه ی یک متد مقدار آرگومان را لحاظ کرد (هم چنین می توان مقدار آرگومان را در بدنه ی متد به کار نبرد). مثال زیر مقدار آرگومان را در بدنه ی متد نمایش می دهد.
?
۱
۲
۳
۴
۵
۶
۷

class Exercise
‎{‎
‎ void ShowCharacter(char c)‎
‎ {‎
‎ System.Console.WriteLine(c);‎
‎ }‎
‎}‎

نمونه ی زیر نیز معتبر و صحیح است.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴

class Exercise
‎{‎
‎ void ShowCharacter(char? c)‎
‎ {‎
‎ System.Console.WriteLine(c);‎
‎ }‎
‎}‎
class Exercise
‎{‎
‎ void ShowCharacter(char? c)‎
‎ {‎
‎ System.Console.WriteLine(c);‎
‎ }‎
}‎

به همین شیوه می توان مقدار ارائه شده را به صورت دلخواه تنظیم و اداره کرد.
فراخوانی متدی که آرگومان می گیرد

در وهله ی اول برای استفاده از یک متد باید آن را فرا خواند. به منظور فراخوانی متدی که آرگومان می گیرد، ابتدا باید مقداری برای آرگومان فراهم کنید، در غیر این صورت پیغام خطا (error) دریافت می کنید. همچنین باید مقدار مناسب را در اختیار آرگومان قرار دهیم، در غیر این صورت متد آن گونه که باید کار خود را درست انجام نمی دهد و نتیجه ی اتکاناپذیر و نامعتبر به دست می دهد.

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

مثال:
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴

class Exercise
‎{‎
‎ void ShowCharacter(char c)‎
‎ {‎
‎ System.Console.WriteLine(c);‎
‎ }‎
‎ static int Main()‎
‎ {‎
‎ Exercise exo = new Exercise();‎ ‎ ‎
‎ System.Console.Write(“Character: “);‎
‎ exo.ShowCharacter(‘W’);‎
‎ return 0;‎
‎ }‎
}

متدی که آرگومان می گیرد، همچنین می تواند متغیرهای محلی خود را تعریف کند.
ارسال آرگومان ها

روی دکمه ی StoreItem.cs کلیک کرده تا فایل مورد نظر باز شود، سپس آن را به صورت زیر اصلاح کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷
۲۸
۲۹
۳۰
۳۱
۳۲
۳۳
۳۴
۳۵

public class StoreItem
‎{‎
‎ public long itemNumber;‎
‎ public string itemName;‎
‎ public string size;‎
‎ public decimal unitPrice;‎
‎ public void CreateItem()‎
‎ {‎
‎ itemNumber = 911792;‎
‎ itemName = “Girls Tillie Poplin Dress”;‎
‎ size = “12”;‎
‎ unitPrice = 110.00m;‎
‎ }‎
‎ public decimal CalculateTotalValue(int qty)‎
‎ {‎
‎ return unitPrice * qty;‎
‎ }‎
‎ public void Describe()‎
‎ {‎
‎ int quantity = 6;‎
‎ System.Console.WriteLine(“Department Store”);‎
‎ System.Console.Write(“Item #: “);‎
‎ System.Console.WriteLine(itemNumber);‎
‎ System.Console.Write(“Item Name: “);‎
‎ System.Console.WriteLine(itemName);‎
‎ System.Console.Write(“Item Size: “);‎
‎ System.Console.WriteLine(size);‎
‎ System.Console.Write(“Unit Price: “);‎
‎ System.Console.WriteLine(unitPrice);‎
‎ System.Console.Write(“Quantity: “);‎
‎ System.Console.WriteLine(quantity);‎
‎ System.Console.Write(“Total Value: “);‎
‎ System.Console.WriteLine(CalculateTotalValue(quantity));‎
‎ }‎
‎}‎
اکنون برنامه را اجرا کنید. نتیجه ی زیر حاصل می گردد.
پنجره ی DOS را بسته و به محیط برنامه نویسی بازگردید.

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

یک متد می تواند آرگومان های متعدد داشته باشد. البته، برای تک تک آرگومان ها باید یک اسم و نوع داده در نظر گرفته شود. آرگومان ها با ویرگول (،) از هم جدا می شوند. به مثال زیر توجه کنید.
?
۱
۲
۳
۴
۵
۶

class Exercise
‎{‎
‎ void ShowEmployee(long employeeNumber,‎ string fullName,‎char gender,‎ double hourlySalary)‎
‎ {‎
‎ }‎
}

در صورت الزام، به آرگومان هایی که از نوع اولیه ی داده هستند، علامت سوال اضافه می کنیم.
توجه:

از این بخش درس به بعد، به منظور اشاره به متدی که متعلق به یک کلاس هست از قرداد زیر استفاده می کنیم.
?
۱

className.MethodName(Arguments)‎

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

از این بخش درس به بعد، می نویسیم ” دستور نحوی این متد هست “.
?
۱

ReturnValue ClassName.MethodName(Arguments);‎

با این کار داریم نوع بازگشتی (return type)، اسم مورد نظر، و تعداد آرگومان های یک متد را ارائه می دهیم.

در قرارداد جدید ما، دستور نحوی را با نقطه ویرگول (;) خاتمه می دهیم. بر خلاف زبان های C، C++، Object Pascal، Visual Basic، زبان برنامه نویسی C# و Java این اجازه را به شما نمی دهد که اول تابعی را تعریف کنید، سپس آن را در بخش دیگر فایل یا فایلی مجزا پیاده سازی کنید. ما از نقطه ویرگول برای نشان دادن ساختار یک متد استفاده می کنیم (و نه برای خود تعریف).

هنگام تعریف متغیر، می توانید ۰، ۱ یا حتی تمامی آرگومان ها را هر طور که مایلید به کار ببرید. برای مثال، می توانید مقادیر آن را با کنسول نشان دهید. به مثال های زیر توجه کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵

class Exercise
‎{‎
void ShowEmployee(long employeeNumber،‎ string fullName،‎ ‎
‎ char gender،‎ double hourlySalary)‎
‎ {‎
‎ System.Console.Write(“Employee #: “);‎
‎ System.Console.WriteLine(employeeNumber);‎
‎ System.Console.Write(“Full Name: “);‎
‎ System.Console.WriteLine(fullName);‎
‎ System.Console.Write(“Gender: “);‎
‎ System.Console.WriteLine(gender);‎
‎ System.Console.Write(“Hourly Salary: “);‎
‎ System.Console.WriteLine(hourlySalary);‎
‎ }‎
}

راه های مختلفی برای فراخوانی متدی که آرگومان می گیرد وجود دارد. دیدیم که هنگام فراخوانی متدی که آرگومان می گیرد، می توان مقداری در پرانتزهای متد تایپ کرد. به همین ترتیب هم، هنگام فراخوانی متدی که چندین آرگومان می گیرد، کافی است مقدار مربوط را در placeholderآن آرگومان تایپ کنید. مثال های آن را زیر مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴

class Exercise
‎{‎
‎ void ShowEmployee(long employeeNumber,‎ string fullName,‎char gender,‎ double hourlySalary)‎
‎ {‎
‎ System.Console.WriteLine(“Employee Record”);‎
‎ System.Console.WriteLine(“—————————–“);‎
‎ System.Console.Write(“Employee #: “);‎
‎ System.Console.WriteLine(employeeNumber);‎
‎ System.Console.Write(“Full Name: “);‎
‎ System.Console.WriteLine(fullName);‎
‎ System.Console.Write(“Gender: “);‎
‎ System.Console.WriteLine(gender);‎
‎ System.Console.Write(“Hourly Salary: “);‎
‎ System.Console.WriteLine(hourlySalary);‎
}
}‎
static int Main()‎
{‎
{
‎ Exercise exo = new Exercise();‎
‎ exo.ShowEmployee(572948‎،‎ “Andrew Bridges”‎،‎ ‘M’‎،‎ ۲۲٫۸۵D);‎
‎ return 0;‎
‎ }‎
‎}

این نتیجه را به دست می دهد.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲

class Exercise
‎{‎
‎ void ShowEmployee(long employeeNumber, string fullName,char gender,‎ double hourlySalary)‎
‎ {‎
‎ System.Console.WriteLine(“Employee Record”);‎
‎ System.Console.WriteLine(“—————————–“);‎
‎ System.Console.Write(“Employee #: “);‎
‎ System.Console.WriteLine(employeeNumber);‎
‎ System.Console.Write(“Full Name: “);‎
‎ System.Console.WriteLine(fullName);‎
‎ System.Console.Write(“Gender: “);‎
‎ System.Console.WriteLine(gender);‎
‎ System.Console.Write(“Hourly Salary: “);‎
‎ System.Console.WriteLine(hourlySalary);‎
}
‎ static int Main()‎
‎ {‎
‎ Exercise exo = new Exercise();‎
‎ exo.ShowEmployee(572948‎،‎ “Andrew Bridges”‎،‎ ‘M’‎،‎ ۲۲٫۸۵D);‎
‎ return 0;‎
‎ }‎
}
فراخوانی آرگومان با استفاده از اسم

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

در صورت کار با برنامه ی Microsoft Visual Studio، پس از وارد کردن اسم متد و “(” ، قاعدتاً باید بتوانید فهرستی از اسم های آرگومان ها را به صورت زیر مشاهده کنید.
آموزش C#

سپس، می توانید اسم آرگومان را تایپ کنید. می توانید هم به جای تایپ کردن آن، کلید های Ctrl + Space را فشار دهید. حال، فهرستی ظاهر می شود. در فهرست مذکور اسم های آرگومان ها قابل مشاهده می باشد.
آموزش متدها در C#

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

مثال:
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳

class Exercise
‎{‎
‎ void ShowEmployee(long employeeNumber,‎ string fullName,char gender, double hourlySalary)‎
‎ {‎
‎ System.Console.WriteLine(“Employee Record”);‎
‎ System.Console.WriteLine(“—————————–“);‎
‎ System.Console.Write(“Employee #: “);‎
‎ System.Console.WriteLine(employeeNumber);‎
‎ System.Console.Write(“Full Name: “);‎
‎ System.Console.WriteLine(fullName);‎
‎ System.Console.Write(“Gender: “);‎
‎ System.Console.WriteLine(gender);‎
‎ System.Console.Write(“Hourly Salary: “);‎
‎ System.Console.WriteLine(hourlySalary);‎
}‎
‎ static int Main()‎
‎ {‎
‎ Exercise exo = new Exercise();‎
‎ exo.ShowEmployee(fullName: “Annette Greens”‎،‎ hourlySalary: 16.85‎،‎ ‎
‎ ‎ ‎ employeeNumber: 519427‎،‎ gender: ‘F’);‎
‎ return 0;‎
‎ }‎
‎}

نتیجه:
?
۱
۲
۳
۴
۵
۶
۷

Employee Record
‎—————————–‎
Employee #: 519427‎
Full Name: Annette Greens
Gender: F
Hourly Salary: 16.85‎
Press any key to continue…‎