SlideShare a Scribd company logo
‫بنام‬‫ایزد‬‫خرد‬ ‫و‬ ‫جان‬
‫نویسی‬ ‫برنامه‬c#
‫نویسنده‬‫مترجم‬ ،‫امجدی‬ ‫امین‬ ‫ّد‬‫م‬‫مح‬ : ‫گردآورنده‬ ‫و‬
‫بخش‬‫هفتم‬
Class
amjadima@gmail.com
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#1
‫شما‬ ‫به‬ ‫البته‬ ‫(که‬ ! ‫بنویسیم‬ ‫برنامه‬ ‫یک‬ ‫فروشگاه‬ ‫یک‬ ‫برای‬ ‫بخواهیم‬ ‫کنید‬ ‫فرض‬ ، ‫شدیم‬ ‫نویسی‬ ‫برنامه‬ ‫اصلی‬ ‫مبحث‬ ‫وارد‬ ‫تازه‬ ، ‫خب‬
‫خیال‬ ، ‫بنویسید‬ ‫دهند‬ ‫نمی‬) ! ‫باشه‬ ‫راحت‬ ‫تون‬
. ‫نمائیم‬ ‫ذخیره‬ ‫را‬ ‫شده‬ ‫فروخته‬ ‫تعداد‬ ‫و‬ ‫فروش‬ ‫قیمت‬ ، ‫خرید‬ ‫قیمت‬ ، ‫کاال‬ ‫نام‬ ‫باید‬ ، ‫بنویسیم‬ ‫خواهیم‬ ‫می‬ ‫که‬ ‫ای‬ ‫ساده‬ ‫فروشگاه‬ ‫این‬ ‫در‬
: ‫کنیم‬ ‫تعریف‬ ‫را‬ ‫زیر‬ ‫های‬ ‫متغییر‬ ‫باید‬ ‫اطالعات‬ ‫ذخیره‬ ‫برای‬ ‫پس‬
using System;
namespace Test_1
{
class Program
{
static void Main(string[] args)
{
int Tedad = Convert.ToInt32(Console.ReadLine());
string[] Name = new string[Tedad];
double[] Kharid = new double[Tedad];
double[] Forush = new double[Tedad];
Int64[] TeFo = new Int64[Tedad];
}
}
}
‫فروشگاه‬ ‫اطالعات‬
•‫ها‬ ‫کاال‬ ‫نام‬
•‫کاال‬ ‫هر‬ ‫خرید‬ ‫قیمت‬
•‫کاال‬ ‫هر‬ ‫فروش‬ ‫قیمت‬
•‫کاال‬ ‫هر‬ ‫از‬ ‫رفته‬ ‫فروش‬ ‫تعداد‬
‫کاال‬ ‫نوع‬ ‫هر‬ ‫از‬ ‫اجناس‬ ‫تعداد‬Tedad
‫کاالها‬ ‫نام‬Name
‫کاال‬ ‫هر‬ ‫خرید‬ ‫قیمت‬Kharid
‫کاال‬ ‫هر‬ ‫فروش‬ ‫قیمت‬Forush
‫کاال‬ ‫هر‬ ‫رفته‬ ‫فروش‬ ‫تعداد‬TeFo
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#2
: ‫هستند‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫ها‬ ‫آرایه‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬ ‫حال‬
Tedad-1Tedad-2‫کاالی‬i‫ام‬3210i
‫کاالی‬ ‫نام‬i‫ام‬Name
‫کاالی‬ ‫خرید‬ ‫قیمت‬i‫ام‬Kharid
‫کاالی‬ ‫فروش‬ ‫قیمت‬i‫ام‬Forush
‫کاالی‬ ‫فروش‬ ‫تعداد‬i‫ام‬TeFo
‫خانه‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫دقت‬ ‫پس‬i‫کاالی‬ ‫به‬ ‫مربوط‬ ‫ها‬ ‫آرایه‬ ‫تمام‬ ‫ام‬i. ‫بوده‬
‫را‬ ‫زیر‬ ‫متد‬ ، ‫کنیم‬ ‫دریافت‬ ‫را‬ ‫کاالها‬ ‫تمام‬ ‫اطالعات‬ ، ‫خواهیم‬ ‫می‬ ‫حال‬‫باال‬Main: ‫نویسیم‬ ‫می‬
static void ReadKala(string[] N, double[] Kh , double[] F , Int64[] TF)
{
for(int i = 0 ; i < N.Length ; i++)
{
N[i] = Console.ReadLine();
Kh[i] = Convert.ToDouble(Console.ReadLine());
F[i] = Convert.ToDouble(Console.ReadLine());
TF[i] = Convert.ToInt64(Console.ReadLine());
}
}
‫متد‬ ‫یک‬ ‫این‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬static‫به‬ ‫ربطی‬ ‫هیچ‬ ‫آن‬ ‫ورودی‬ ‫های‬ ‫آرگومان‬ ‫و‬ ، )‫اینجا‬ ‫هرچیزی(در‬ ‫از‬ ‫مستقل‬ ‫و‬ ‫است‬
‫داخل‬ ‫متغییرهای‬Main‫ندارد‬ ‫دیگر‬ ‫متدهای‬ ‫سایر‬ ‫و‬.
‫داخل‬ ، ‫کنیم‬ ‫استفاده‬ ‫متد‬ ‫این‬ ‫از‬ ‫خواهیم‬ ‫می‬ ‫حال‬Main: ‫کنیم‬ ‫می‬ ‫اضافه‬ ‫را‬ ‫زیر‬ ‫کد‬
ReadKala(Name, Kharid, Forush, TeFo);
‫داخل‬ ‫متغییرهای‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬Main‫متد‬ ‫ورودی‬ ‫ها‬ ‫آرگومان‬ ‫به‬ ‫را‬ReadKala: ‫ایم‬ ‫نموده‬ ‫پاس‬
static void ReadKala(string[] N, double[] Kh , double[] F , Int64[] TF)
ReadKala(Name, Kharid, Forush, TeFo);
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#3
‫خواهیم‬ ‫می‬ ‫حال‬‫متد‬ ‫که‬ ‫است‬ ‫کافی‬ ، ‫نماید‬ ‫محاسبه‬ ‫را‬ ‫فروشگاه‬ ‫در‬ ‫شده‬ ‫فروخته‬ ‫کاالهای‬ ‫کل‬ ‫تعداد‬ ‫که‬ ‫بنویسیم‬ ‫متدی‬،‫فروش‬ ‫تعداد‬
: ‫نماید‬ ‫جمع‬ ‫هم‬ ‫با‬ ‫را‬ ‫همگی‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫کاالها‬ ‫تمام‬
static Int64 TedadeForush(Int64[] TF)
{
Int64 r = 0;
for (int i = 0; i < TF.Length; i++)
{
r += TF[i];
}
return r;
}
‫داخل‬ ‫حال‬ ‫و‬Main: ‫نویسیم‬ ‫می‬
Console.WriteLine(TedadeForush(TeFo));
‫را‬ ‫سود‬ ‫باید‬ ‫چگونه‬ ‫خب‬ ‫؛‬ ‫نمائیم‬ ‫محاسبه‬ ‫را‬ ‫سود‬ ‫مقدار‬ ‫خواهیم‬ ‫می‬ ‫فروشنده‬ ‫برای‬ ‫حال‬‫؟‬ ‫نمود‬ ‫محاسبه‬
‫فروخته‬ ‫اجناس‬ ‫تعداد‬ ‫در‬ ‫را‬ ‫حاصل‬ ‫سپس‬ ‫و‬ ‫نموده‬ ‫محاسبه‬ ‫کاال‬ ‫آن‬ ‫از‬ ‫جنس‬ ‫یک‬ ‫فقط‬ ‫فروش‬ ‫برای‬ ‫را‬ ‫فروش‬ ‫سود‬ ‫کاال‬ ‫هر‬ ‫برای‬ ‫ابتدا‬
‫شود‬ ‫می‬ ‫که‬ ‫آوریم‬ ‫می‬ ‫بدست‬ ‫را‬ ‫کاالها‬ ‫تمام‬ ‫سود‬ ‫مجموع‬ ‫سپس‬ ، ‫کاال‬ ‫یک‬ ‫از‬ ‫سودفروش‬ ‫شود‬ ‫می‬ ‫این‬ ‫که‬ ‫نموده‬ ‫کاال‬ ‫آن‬ ‫از‬ ‫شده‬
. ‫فروشنده‬ ‫سود‬
static Int64 Soud(double[] Kh, double[] F, Int64[] TF)
{
Int64 r = 0;
for (int i = 0; i < Kh.Length; i++)
{
r = (Int64)(F[i] - Kh[i]) * TF[i];
}
return r;
}
‫داخ‬ ‫که‬‫ل‬Main: ‫نویسیم‬ ‫می‬
Console.WriteLine(Soud(Kharid, Forush, TeFo));
‫در‬ ‫کامل‬ ‫بصورت‬ ‫را‬ ‫کد‬ ‫این‬ ‫شما‬ ‫حاال‬ ، ‫خب‬VisualStudio. ‫نموده‬ ‫اجرا‬ ‫آنرا‬ ‫و‬ ‫شده‬ ‫مسلط‬ ‫آن‬ ‫قسمت‬ ‫قسمت‬ ‫بر‬ ‫و‬ ، ‫نوشته‬
‫خیل‬ ‫های‬ ‫ویژگی‬ ‫دارای‬ ‫هم‬ ‫کاالها‬ ‫و‬ ، ‫باشیم‬ ‫داشته‬ ‫فروشگاه‬ ‫چندین‬ ‫باشد‬ ‫قرار‬ ‫کنید‬ ‫فرض‬ ‫حال‬... ‫و‬ ‫اند‬ ‫بیشتری‬ ‫خیلی‬ ‫ی‬
‫؟‬ ‫است‬ .... ‫و‬ ‫خوانا‬ ‫کدنویسی‬ ‫روش‬ ‫این‬ ‫بنظرتان‬ ‫آیا‬
‫که‬ ‫طور‬ ‫همان‬ ‫ما‬ ‫که‬ ‫کنید‬ ‫فرض‬int،double‫نام‬ ‫به‬ ‫تایپی‬ ، ‫داریم‬ ... ‫و‬Kala‫قیمت‬ ، ‫نام‬ ‫دارای‬ ‫خود‬ ‫کاالیی‬ ‫هر‬ ‫که‬ ‫باشیم‬ ‫داشته‬
!‫؟‬ ‫نه‬ ، ‫شود‬ ‫می‬ ‫چی‬ ‫وای‬ ، ‫باشد‬ ‫فروش‬ ‫تعداد‬ ‫و‬ ‫فروش‬ ‫قیمت‬ ، ‫خرید‬
‫کاال‬
•‫نام‬
•‫خرید‬ ‫قیمت‬
•‫فروش‬ ‫قیمت‬
•‫فروش‬ ‫تعداد‬
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#4
، ‫خب‬‫باالی‬ ، ‫کاال‬ ‫تعریف‬ ‫برای‬Main‫نام‬ ‫به‬ ‫کالس‬ ‫یک‬Kala: ‫کنیم‬ ‫می‬ ‫تعریف‬
class Kala
{
public string Name;
public double Kharid;
public double Forush;
public Int64 TeFo;
}
‫بعد‬ ‫به‬ ‫حاال‬ ‫از‬Kala‫ی‬‫یا‬ ‫خرید‬ ‫قیمت‬ ‫که‬ ‫کنیم‬ ‫تعریف‬ ‫را‬ ‫َس‬‫ل‬َ‫م‬ ‫نام‬ ‫به‬ ‫کاالیی‬ ً‫ال‬‫مث‬ ‫خواهیم‬ ‫می‬ ‫حاال‬ ‫خب‬ ‫؛‬ ‫شود‬ ‫می‬ ‫محسوب‬ ‫تایپ‬ ‫ک‬
‫آن‬ ‫تولید‬52‫آن‬ ‫فروش‬ ‫قیمت‬ ‫و‬ ‫بوده‬ ‫تومان‬522‫که‬ ‫باشد‬ ‫می‬ ‫تومن‬4: ! ‫میخرند‬ ‫میرن‬ ‫خوش‬ ‫و‬ ‫بیکار‬ ‫آدم‬ ‫تا‬
Kala k = new Kala();
k.Name = "Malas !";
k.Kharid = 25;
k.Forush = 250;
k.TeFo = 4;
‫بر‬ ‫عالوه‬ ‫فروشگاه‬ ‫یک‬ ‫برای‬ ‫خب‬ ، ‫بنویسیم‬ ‫کاال‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫بودیم‬ ‫نوشته‬ ‫ها‬ ‫آرایه‬ ‫با‬ ‫کال‬ ‫که‬ ‫را‬ ‫قبال‬ ‫برنامه‬ ‫همان‬ ‫خواهیم‬ ‫می‬ ‫حاال‬
‫کاال‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫به‬ !‫؟‬ ‫داریم‬ ‫نیاز‬ ‫چی‬ ‫به‬ ‫کیشمیش‬ ‫و‬ ‫نخود‬‫نویسیم‬ ‫می‬ ‫پس‬ ‫؛‬ ‫؟‬ ‫نه‬ ، ‫ها‬:
static void Main(string[] args)
{
int Tedad = Convert.ToInt32(Console.ReadLine());
Kala[] k = new Kala[Tedad];
ReadKala(k);
Console.WriteLine(TedadeForush(k));
Console.WriteLine(Soud(k));
}
‫باالی‬ ، ‫گیرند‬ ‫می‬ ‫کاالها‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫هرکدام‬ ‫که‬ ‫شکل‬ ‫بدین‬ ، ‫کنیم‬ ‫می‬ ‫بازنویسی‬ ‫هم‬ ‫را‬ ‫قبلی‬ ‫متدهای‬ ‫ّا‬‫م‬‫ا‬ ‫و‬Main: ‫نویسیم‬ ‫می‬
static void ReadKala(Kala[] Ka)
{
for (int i = 0; i < Ka.Length; i++)
{
//********** new Ka[i] : ********************
//******* Don't Forget
Ka[i] = new Kala();
//Read Ka[i]
Ka[i].Name = Console.ReadLine();
Ka[i].Kharid = Convert.ToDouble(Console.ReadLine());
Ka[i].Forush = Convert.ToDouble(Console.ReadLine());
Ka[i].TeFo = Convert.ToInt64(Console.ReadLine());
}
}
‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬Ka‫از‬ ‫آرایه‬ ‫یک‬Kala‫پس‬ ، ‫بوده‬ ‫ها‬ka[i]‫نوع‬ ‫از‬ ‫که‬ ‫ای‬ ‫شی‬ ‫هر‬ ‫و‬ ، ‫باشد‬ ‫می‬ ‫کاال‬ ‫یک‬ ‫خود‬class
‫را‬ ‫آن‬ ً‫ا‬‫حتم‬ ‫ابتدا‬ ‫باید‬ ، ‫کنیم‬ ‫کار‬ ‫آن‬ ‫با‬ ‫بخواهیم‬ ‫و‬ ‫داریم‬new. ‫کنیم‬
static Int64 TedadeForush(Kala[] Ka)
{
Int64 r = 0;
for (int i = 0; i < Ka.Length; i++)
{
r += Ka[i].TeFo;
}
return r;
}
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#5
static Int64 Soud(Kala[] ka)
{
Int64 r = 0;
for (int i = 0; i < ka.Length; i++)
{
r = (Int64)(ka[i].Forush - ka[i].Kharid) * ka[i].TeFo;
}
return r;
}
: ‫نکات‬
1.‫یک‬ ‫نوع‬ ‫از‬ ‫متغییر‬ ‫یک‬ ‫که‬ ‫وقتی‬class‫آنرا‬ ‫حتما‬ ‫باید‬ ، ‫کنیم‬ ‫می‬ ‫تعریف‬new‫آن‬ ‫با‬ ‫سپس‬ ‫و‬ ‫نمائیم‬: ‫کنیم‬ ‫کار‬
Kala k = new Kala();
5.‫نوع‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫که‬ ‫وقتی‬class‫ای‬، ‫داریم‬‫را‬ ‫آرایه‬ ‫آن‬ ‫ابتدا‬ ‫باید‬new: ‫کنیم‬
Kala[] k = new Kala[Tedad];
‫های‬ ‫خانه‬ ‫از‬ ‫کدام‬ ‫هر‬ ‫باز‬ ‫و‬‫یک‬ ‫خود‬ ‫آرایه‬kala‫را‬ ‫ها‬ ‫آن‬ ‫تک‬ ‫تک‬ ، )‫یک‬ ‫(نکته‬ ‫قبلی‬ ‫نکته‬ ‫براساس‬ ‫باید‬ ‫پس‬ ، ‫هستند‬
new: ‫نمود‬
for (int i = 0; i < k.Length; i++ )
{
k[i] = new Kala();
}
3.‫هنگام‬ ‫به‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬new‫از‬ ‫آرایه‬ ‫نمودن‬[]‫هنگام‬ ‫به‬ ‫و‬new‫از‬ ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫نمودن‬()‫استفاده‬
. ‫نموده‬
: ‫فیلد‬
‫در‬ ‫که‬ ‫هستند‬ ‫متغییرها‬ ‫همانند‬ ، ‫ها‬ ‫فیلد‬class. ‫بوده‬ ‫اطالعات‬ ‫سازی‬ ‫ذخیره‬ ‫محل‬ ‫و‬ ‫شده‬ ‫نوشته‬
‫فوق‬ ‫مثال‬ ‫در‬Name،Kharid،Forush‫و‬TeFo‫کالس‬ ‫فیلدهای‬Kala. ‫شوند‬ ‫می‬ ‫محسوب‬
: ‫دسترسی‬ ‫سطوح‬(‫شده‬ ‫قرمز‬ ‫های‬ ‫قسمت‬‫آموخت‬ ‫خواهید‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫در‬ ‫را‬)
، ‫سازنده‬ ، ‫(فیلد‬ ‫کالس‬ ‫عناصر‬ ‫و‬ ‫اعضا‬‫مخرب‬، ‫متد‬ ، ‫ایندکسر‬ ، ‫پراپرتی‬ ،‫عملگرها‬‫و‬‫رویدادها‬‫دار‬ ‫توانند‬ ‫می‬ )‫س‬ ‫ای‬‫طوح‬
‫دسترسی‬private،public‫و‬protected. ‫باشند‬
‫بصورت‬ ‫کالس‬ ‫از‬ ‫عضوی‬ ‫اگر‬private‫آن‬ ‫به‬ ‫کالس‬ ‫خود‬ ‫داخل‬ ‫فقط‬ ‫و‬ ‫فقط‬ ، ‫شود‬ ‫تعریف‬‫از‬ ‫خارج‬ ‫در‬ ‫و‬ ‫داریم‬ ‫دسترسی‬
‫و‬ ‫ها‬ ‫کالس‬ ‫سایر‬ ‫(در‬ ‫کالس‬Main. ‫داشت‬ ‫نخواهیم‬ ‫دسترسی‬ ‫آنها‬ ‫به‬ ).... ‫و‬
‫آن‬ ‫دسترسی‬ ‫سطح‬ ، ‫ننمائیم‬ ‫مشخص‬ ‫را‬ ‫دسترسی‬ ‫سطح‬ ‫کالس‬ ‫از‬ ‫عضوی‬ ‫برای‬ ‫اگر‬private. ‫بود‬ ‫خواهد‬
، ‫باشد‬ ‫دسترس‬ ‫در‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫جا‬ ‫همه‬ ‫کالس‬ ‫از‬ ‫عضوی‬ ‫بخواهیم‬ ‫اگر‬‫باید‬public‫تعر‬‫باشد‬ ‫شده‬ ‫یف‬.
‫سط‬ ‫دارای‬ ‫نیز‬ ‫کالس‬ ‫خود‬‫و‬( ‫است‬ ‫دسترسی‬ ‫ح‬private،protected،internal‫و‬public)
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#6
Static‫و‬non-static:
‫توانند‬ ‫می‬ ‫کالس‬ ‫عناصر‬ ‫و‬ ‫اعضا‬static‫یا‬non-static. ‫باشند‬
‫عناصر‬ ‫و‬ ‫اعضا‬static‫خود‬ ‫از‬ ‫باید‬ ‫آنها‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫و‬ ‫بوده‬ ‫کالس‬ ‫خود‬ ‫به‬ ‫مربوط‬ ،: ‫نمود‬ ‫استفاده‬ ‫کالس‬
class MyMath
{
public readonly static double PI = 3.14;
}
static void Main(string[] args)
{
Console.WriteLine(MyMath.PI);
}
‫فیلد‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ، ‫بینید‬ ‫می‬ ‫که‬ ‫طور‬ ‫همان‬static،PI‫کالس‬ ‫از‬MyMath‫داخل‬ ،Main‫وسپس‬ ‫کالس‬ ‫نام‬ ‫ابتدا‬
. ‫نوشته‬ ‫را‬ ‫فیلد‬ ‫نام‬
Readonly‫باشد‬ ‫نمی‬ ‫پیشرفته‬ ‫درس‬ ‫به‬ ‫مربوط‬(‫شود‬ ‫نمی‬ ‫گفته‬ ‫هم‬ ‫گرا‬ ‫شی‬ ‫در‬‫برای‬ :‫خواند‬ ‫فقط‬‫ن‬‫استف‬ ‫بودن‬ ‫ی‬‫شود‬ ‫می‬ ‫اده‬)
‫عناصر‬ ‫و‬ ‫اعضا‬non-static‫آنها‬ ‫به‬ ‫تعریف‬ ‫هنگام‬ ‫در‬ ‫که‬ ،static‫ندهی‬ ‫نسبت‬ ‫را‬‫بوده‬ ‫کالس‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫به‬ ‫مربوط‬ ، ‫م‬
: ‫نمائیم‬ ‫استفاده‬ ‫کالس‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫از‬ ‫باید‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫و‬
class MyMath
{
public readonly double PI = 3.14;
}
static void Main(string[] args)
{
MyMath m = new MyMath();
Console.WriteLine(m.PI);
}
‫فیلد‬ ، ‫فوق‬ ‫کد‬ ‫در‬PI‫کالس‬ ‫از‬MyMath‫که‬non-static‫(غیر‬static‫در‬ ‫آن‬ ‫از‬ ‫اینکه‬ ‫برای‬ ، ‫باشد‬ ‫می‬ )Main‫هرجای‬ ‫یا‬
‫موج‬ ‫شی‬ ‫از‬ ‫نموده(یا‬ ‫تعریف‬ ‫را‬ ‫شی‬ ‫یک‬ ‫ابتدا‬ ‫باید‬ ، ‫نمائیم‬ ‫استفاده‬ ‫کالس‬ ‫از‬ ‫خارج‬ ‫در‬ ‫دیگری‬‫س‬ ‫و‬ ‫شی‬ ‫نام‬ ، )‫نموده‬ ‫استفاده‬ ‫ود‬‫پس‬
. ‫نوشته‬ ‫را‬ )‫نباشد‬ ‫استاتیک‬ ‫که‬ ‫عضوی‬ ‫(هر‬ ‫فیلد‬ ‫نام‬ ‫باید‬
: ‫سازنده‬
‫آنرا‬ ‫ابتدا‬ ‫باید‬ ‫کالسمان‬ ‫نوع‬ ‫ای‬ ‫شی‬ ‫هر‬ ‫از‬ ‫استفاده‬ ‫برای‬new‫نموده‬‫فراخوانی‬ ‫را‬ ‫کالس‬ ‫سازنده‬ ‫داریم‬ ‫واقع‬ ‫در‬ ‫کار‬ ‫این‬ ‫با‬ ‫که‬ ،
‫فی‬ ‫به‬ ‫اولیه‬ ‫مقداردهی‬ ‫و‬ ‫حافظه‬ ‫تخصیص‬ ‫و‬ ‫کنیم‬ ‫می‬. ‫دهیم‬ ‫می‬ ‫انجام‬ ‫را‬ ‫لدها‬
. ‫باشد‬ ‫کالس‬ ‫نام‬ ‫هم‬ ‫حتما‬ ‫باید‬ ‫و‬ ‫ندارد‬ ‫خروجی‬ ‫که‬ ‫است‬ ‫متد‬ ‫همانند‬ ‫سازنده‬
‫نیست‬ ‫درست‬ ‫لفظ‬ ‫این‬ ‫دقیقا‬ ‫(البته‬ ‫گوئیم‬ ‫می‬ ‫فرض‬ ‫پیش‬ ‫سازنده‬ ، ‫ندارد‬ ‫ای‬ ‫ورودی‬ ‫آرگومان‬ ‫هیچ‬ ‫که‬ ‫ای‬ ‫سازنده‬ ‫به‬!. )
‫س‬ ‫از‬ ‫باید‬ ، ‫ایم‬ ‫ننوشته‬ ‫ای‬ ‫سازنده‬ ‫هیچ‬ ‫خود‬ ‫کالس‬ ‫برای‬ ‫که‬ ‫زمانی‬. ‫نمود‬ ‫استفاده‬ ‫فرض‬ ‫پیش‬ ‫ازنده‬
‫آرگومان‬ ‫فرض(بدون‬ ‫پیش‬ ‫سازنده‬ ‫و‬ ‫نمود‬ ‫استفاده‬ ‫فرض‬ ‫پیش‬ ‫سازنده‬ ‫از‬ ‫توان‬ ‫نمی‬ ‫بنویسیم‬ ‫ای‬ ‫سازنده‬ ‫کالسمان‬ ‫برای‬ ‫اگر‬
. ‫بنویسیم‬ ‫باید‬ ‫خودمان‬ ‫را‬ )‫ورودی‬
‫ی‬ ‫تعداد‬ ‫در‬ ‫آنکه‬ ‫به‬ ‫منوط‬ ‫بنویسیم‬ ‫کالسمان‬ ‫برای‬ ‫سازنده‬ ‫چندین‬ ، ‫نام‬ ‫هم‬ ‫متدهای‬ ‫همانند‬ ‫توانیم‬ ‫می‬‫های‬ ‫آرگومان‬ ‫نوع‬ ‫ا‬
. ‫باشند‬ ‫متفاوت‬ ‫یکدیگر‬ ‫با‬ ‫ورودی‬
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#7
‫برای‬: ‫نویسیم‬ ‫می‬ ‫سازنده‬ ‫چندین‬ ‫خود‬ ‫کالس‬
public Kala()
{
TeFo = 0;
}
public Kala(string Name , double Kharid , double Forush)
{
this.Name = Name;
this.Kharid = Kharid;
this.Forush = Forush;
TeFo = 0;
}
public Kala(string Name , double Kharid , double Forush , Int64 TeFo)
{
this.Name = Name;
this.Kharid = Kharid;
this.Forush = Forush;
this.TeFo = TeFo;
}
‫نوشتن‬ ‫برای‬Main‫هنگام‬ ‫به‬ ‫سپس‬ ‫و‬ ‫کنیم‬ ‫تعریف‬ ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫متغییری‬ ‫که‬ ‫است‬ ‫کافی‬ ، ‫ها‬ ‫سازنده‬ ‫از‬ ‫کدام‬ ‫هر‬ ‫فراخونی‬ ‫و‬new
‫سازنده‬ ، ‫کنیم‬ ‫می‬ ‫پاس‬ ‫سازنده‬ ‫به‬ ‫آرگومان‬ ‫نوعی‬ ‫چه‬ ‫از‬ ‫و‬ ‫تعداد‬ ‫چه‬ ‫اینکه‬ ‫به‬ ‫بسته‬ ، ‫بدهیم‬ ‫آن‬ ‫به‬ ‫را‬ ‫مناسب‬ ‫های‬ ‫آرگومان‬ ‫کردن‬
‫فراخوا‬ ‫مناسب‬‫شود‬ ‫می‬ ‫نی‬:
static void Main(string[] args)
{
Kala k1 = new Kala();
Kala k2 = new Kala("Golabi", 200, 3500);
Kala k3 = new Kala("CheeToz Motoriiieee !", 325, 1500, 1000000);
}
‫سازنده‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫شود‬ ‫می‬ ‫مشاهده‬ ‫که‬ ‫طور‬ ‫همان‬1،k1، ‫نموده‬ ‫ایجاد‬ ‫را‬k1‫فقط‬ ‫که‬ ‫است‬ ‫کاالیی‬TeFo‫برابر‬ ‫و‬ ‫مقداردهی‬ ‫آن‬
‫ساز‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫؛‬ ‫شده‬ ‫صفر‬‫نده‬5،k2، ‫نموده‬ ‫ایجاد‬ ‫را‬k2‫تولید‬ ‫یا‬ ‫خرید‬ ‫قیمت‬ ، ‫گالبی‬ ‫نام‬ ‫با‬ ‫است‬ ‫کاالیی‬522‫قیمت‬ ‫و‬ ‫تومان‬
‫فروش‬3222‫سازنده‬ ‫با‬ ‫همچنین‬ ‫؛‬ ‫صفر‬ ‫فروش‬ ‫تعداد‬ ‫و‬ ‫تومان‬3،k3‫که‬ ‫نموده‬ ‫ایجاد‬ ‫را‬k3‫و‬ ، ‫موتوری‬ ‫توز‬ ‫چی‬ ‫نام‬ ‫به‬ ‫است‬ ‫کاالیی‬
)‫تولید(خرید‬ ‫قیمت‬ ‫با‬352‫تومان‬‫فروش‬ ‫تعداد‬ ‫و‬1000000‫مشخص‬ ‫هم‬ ‫تورم‬ ‫و‬ ‫ها‬ ‫گرانی‬ ‫دلیل‬ ‫پس‬ ‫؛‬ ‫خرند‬ ‫می‬ ‫بیکار‬ ‫آدم‬ ‫مشت‬ ‫یه‬ ‫که‬
‫شکایت‬ ‫توز‬ ‫چی‬ ‫دست‬ ‫از‬ ‫بروید‬ ‫توانید‬ ‫می‬ ‫راحتی‬ ‫همین‬ ‫به‬ ، ‫شد‬! ‫کنید‬ ‫خدمت‬ ‫خویش‬ ‫کشور‬ ‫به‬ ‫و‬ ‫کنید‬
‫یک‬ ‫سازنده‬
‫سازنده‬‫دو‬
‫سازنده‬‫سه‬
‫یک‬ ‫سازنده‬ ‫فراخوانی‬
‫یک‬ ‫سازنده‬ ‫فراخوانی‬
‫سه‬ ‫سازنده‬ ‫فراخوانی‬
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#8
‫خواند‬ ‫خواهید‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫در‬ ‫را‬ ‫سازنده‬ ‫تکمیلی‬ ‫مباحث‬ ‫سایر‬.
this:
this‫ح‬ ‫در‬ ‫که‬ ‫است‬ ‫ای‬ ‫شده‬ ‫رزرو‬ ‫کلمه‬‫کالسمان‬ ‫نوع‬ ‫از‬ ‫جاری‬ ‫شی‬ ‫به‬ ‫گفت‬ ‫باید‬ ‫کلی‬ ‫الت‬‫که‬‫آن‬ ‫در‬ ‫کدنویسی‬ ‫حال‬ ‫در‬
. ‫کند‬ ‫می‬ ‫اشاره‬ ، ‫هستیم‬
1.: ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫جاری‬ ‫شی‬ ‫عنوان‬ ‫به‬
‫از‬ ‫دیگری‬ ‫عضو‬ ‫یا‬ ‫فیلد‬ ‫با‬ ‫نام‬ ‫هم‬ ‫آنها‬ ‫ورودی‬ ‫های‬ ‫آرگومان‬ ‫که‬ ‫نویسیم‬ ‫می‬ ‫ایندکسر‬ ‫یا‬ ‫سازنده‬ ، ‫متد‬ ‫یک‬ ‫که‬ ‫وقت‬ ‫هر‬
‫آن‬ ‫به‬ ، ‫باشد‬ ‫می‬ ‫کالسمان‬ ‫نوع‬‫سازنده،متد‬ ‫ورودی‬ ‫آرگومان‬ ‫به‬ ‫بلکه‬ ، ‫نداریم‬ ‫دسترسی‬ ‫دیگر‬ ‫کالسمان‬ ‫از‬ ‫عضو‬ ‫یا‬ ‫فیلد‬
‫ایندکسر‬ ‫یا‬ ‫سازنده،متد‬ ‫ورودی‬ ‫آرگومان‬ ‫با‬ ‫نام‬ ‫هم‬ ‫که‬ ‫عنصری‬ ‫یا‬ ‫عضو‬ ‫به‬ ‫بتوان‬ ‫اینکه‬ ‫برای‬ ‫؛‬ ‫داریم‬ ‫دسترسی‬ ‫ایندکسر‬ ‫یا‬
‫ابتدا‬ ‫داشت‬ ‫دسترسی‬ ، ‫است‬this.: ‫نوشته‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫عضو‬ ‫نام‬ ‫سپس‬ ‫و‬
class Kala
{
// ‫فیلدها‬
public string Name;
public double Kharid;
public double Forush;
public Int64 TeFo;
public Kala()
{
TeFo = 0;
}
public Kala(string Name , double Kharid , double Forush)
{
this.Name = Name;
this.Kharid = Kharid;
this.Forush = Forush;
TeFo = 0;
}
public Kala(string Name , double Kharid , double Forush , Int64 TeFo)
{
this.Name = Name;
this.Kharid = Kharid;
this.Forush = Forush;
this.TeFo = TeFo;
}
}
‫همان‬‫م‬ ‫که‬ ‫طور‬‫برای‬ ، ‫دارد‬ ‫وجود‬ ‫تداخل‬ ‫کالس‬ ‫فیلد‬ ‫نام‬ ‫و‬ ‫سازنده‬ ‫ورودی‬ ‫آرگومان‬ ‫بین‬ ‫که‬ ‫جاهایی‬ ، ‫شود‬ ‫می‬ ‫شاهده‬
‫از‬ ‫کالس‬ ‫فیلد‬ ‫به‬ ‫دسترسی‬this. ‫است‬ ‫شده‬ ‫استفاده‬
5.‫برای‬)‫گرفت‬ ‫خواهد‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫بعدا‬ ‫(ایندکسر‬ ‫ایندکسر‬ ‫فراخوانی‬
‫فراخوانی‬ ‫را‬ ‫کالس‬ ‫خود‬ ‫ایندکسر‬ ، ‫کالس‬ ‫داخل‬ ‫توان‬ ‫می‬: ً ‫مثال‬ ‫؛‬ ‫نمود‬
this[i] = new Kala();
Kala f = this[i];
3.‫سازنده‬ ‫فراخوانی‬‫دیگر‬ ‫سازنده‬ ‫یک‬ ‫توسط‬ ‫کالس‬)‫شود‬ ‫می‬ ‫گفته‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫(در‬
4.‫شده‬ ‫رزرو‬ ‫ازکلمه‬ ‫باید‬ ‫ایندکسر‬ ‫نوشتن‬ ‫برای‬ : ‫ایندکسر‬ ‫نوشتن‬this‫نمود‬ ‫استفاده‬.
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#9
2.‫که‬ ‫کالسی‬ ‫نوع‬ ‫از‬ ‫شی‬ ‫یک‬ ‫که‬ ، ‫متد‬ ‫یک‬ ‫به‬ ‫جاری‬ ‫شی‬ ‫کردن‬ ‫پاس‬‫آن‬ ‫نوشتن‬ ‫حال‬ ‫در‬‫هستیم‬‫گیرد‬ ‫می‬:
public void F1(Kala t) {/* Code */}
public void F2()
{
F1(this);
}
( ‫پراپرتی‬Property: )
: ‫سوال‬‫جای‬ ‫به‬ ‫و‬ ‫بخرید‬ ‫را‬ ‫کاال‬ ‫یک‬ ‫بروید‬ ‫مثال‬ ‫اینکه‬ ( ‫باشد‬ ‫منفی‬ ‫کاال‬ ‫یک‬ ‫فروش‬ ‫قیمت‬ ‫مثال‬ ‫که‬ ‫درست‬ ‫این‬ ‫شما‬ ‫نظر‬ ‫به‬ ‫آیا‬
‫بپردازید‬ ‫ای‬ ‫هزینه‬ ‫اینکه‬. ‫نمیشه‬ ‫نه‬ ‫خب‬ ‫ولی‬ ، ‫میشه‬ ‫چی‬ ‫بشه‬ ‫اگه‬ ‫که‬ ‫است‬ ‫این‬ ‫داریم‬ ‫که‬ ‫جوابی‬ ‫تنها‬ ‫؟؟‬ ) ‫بدهند‬ ‫هم‬ ‫پول‬ ‫شما‬ ‫به‬
‫توان‬ ‫می‬ ‫چگونه‬ ‫و‬ ‫چطور‬ ‫که‬ ‫آید‬ ‫می‬ ‫پیش‬ ‫سوال‬ ‫این‬ ‫حال‬‫؟‬ ‫نمود‬ ‫کنترل‬ ‫را‬ ‫کالس‬ ‫فیلدهای‬
‫کاربر‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫و‬ ‫سرکاربر‬ ‫پشت‬ ‫بشینید‬ ‫اید‬ ‫نوشته‬ ‫را‬ ‫برنامه‬ ‫که‬ ‫شما‬ ‫که‬ ‫است‬ ‫این‬ ‫جواب‬ ‫تنها‬‫نادرس‬ ‫داده‬، ‫کرد‬ ‫وارد‬ ‫تی‬
! ‫نیست‬ ‫شما‬ ‫زحمت‬ ‫همه‬ ‫این‬ ‫به‬ ‫نیازی‬ ‫بابا‬ ‫نه‬ ! ‫کنید‬ ‫مهمونش‬ ‫گردنی‬ ‫پشت‬ ‫یه‬
‫از‬ ‫استفاده‬ ، ) !‫بگیرید‬ ‫را‬ ‫آنها‬ ‫جلوی‬ ‫باید‬ ‫و‬ ‫شود‬ ‫می‬ ‫تراوش‬ ‫ذهنتان‬ ‫از‬ ‫که‬ ‫حلی‬ ‫راه‬ ‫هزاران‬ ‫از‬ ‫(جدا‬ ‫دارد‬ ‫وجود‬ ‫که‬ ‫حلی‬ ‫راه‬
Property‫را‬ ‫خود‬ ‫فیلد‬ ‫که‬ ، ‫باشد‬ ‫می‬private‫ب‬ ‫و‬ ‫نموده‬‫داخل‬ ‫صورت‬ ‫دین‬Main‫دسترسی‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫از‬ ‫خارج‬ ‫هرجایی‬ ‫یا‬
‫عنوان‬ ‫به‬ ‫واسط‬ ‫یک‬ ‫و‬ ، ‫نباشد‬Property‫که‬ ‫کنیم‬ ‫می‬ ‫تعریف‬public( ‫آن‬ ‫مقدار‬ ‫خواندن‬ ‫موقع‬ ‫و‬ ‫باشد‬get‫را‬ ‫فیلد‬ ‫مقدار‬ ‫همان‬ )
‫به‬ ‫دادن‬ ‫مقدار‬ ‫موقع‬ ‫و‬ ‫برگرداند‬Property‫را‬ ‫آن‬ ‫بود‬ ‫معتبر‬ ‫جدید‬ ‫مقدار‬ ‫که‬ ‫صورتی‬ ‫در‬‫فیلد‬ ‫به‬: ً ‫مثال‬ ، ‫شود‬ ‫ذخیره‬ ‫تا‬ ‫داده‬ ‫نسبت‬
‫یک‬ ‫آن‬ ‫ابتدای‬ ‫به‬ ‫که‬ ‫نام‬ ‫همان‬ ‫برابر‬ ‫را‬ ‫فیلد‬ ‫نام‬ ‫و‬ ‫داده‬ ‫نسبت‬ ‫پراپرتی‬ ‫به‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫نام‬ ‫(معموال‬_‫اس‬ ‫شده‬ ‫اضافه‬)‫ت‬
‫نکات‬:
1.‫پراپرتی‬‫قسمت‬ ‫دارای‬ ‫باید‬get‫یا‬set‫باشد‬ ‫دو‬ ‫هر‬ ‫یا‬.
5.‫اگر‬‫قسمت‬ ، ‫بخوانیم‬ ‫را‬ ‫پراپرتی‬ ‫مقدار‬get‫قسمت‬ ‫بدهیم‬ ‫مقدار‬ ‫آن‬ ‫به‬ ‫اگر‬ ‫و‬set. ‫شود‬ ‫می‬ ‫فراخوانی‬
3.‫پراپرتی‬‫بدون‬()‫قسمت‬ ‫در‬ ‫فقط‬ ‫و‬ ، ‫ندارد‬ ‫ورودی‬ ‫آرگومان‬ ‫هیچ‬ ‫و‬ ‫است‬set‫شده‬ ‫رزرو‬ ‫ازکلمه‬ ‫توان‬ ‫می‬value‫استفاده‬
. ‫دهیم‬ ‫می‬ ‫نسبت‬ ‫پراپرتی‬ ‫به‬ ‫داریم‬ ‫که‬ ‫است‬ ‫مقداری‬ ‫حاوی‬ ‫که‬ ‫نمود‬
4.‫وقتی‬‫که‬‫نوع‬ ‫از‬ ‫مثال‬ ‫پراپرتی‬double‫تعریف‬‫قسمت‬ ‫در‬ ، ‫شود‬ ‫می‬get‫که‬ ‫مقداری‬return‫باید‬ ‫شود‬ ‫می‬double‫باشد‬
‫در‬ ‫که‬ ‫مقداری‬ ‫همچنین‬ ‫و‬value‫نوع‬ ‫از‬ ‫داد‬ ‫قرار‬double( ‫است‬value‫نوع‬ ‫از‬double. )‫بوده‬
2.‫در‬‫قسمت‬get‫حتما‬‫باید‬‫یک‬return. ‫باشد‬ ‫خروجی‬ ‫مقدار‬ ‫دارای‬ ‫همیشه‬ ‫و‬ ‫شود‬ ‫اجرا‬
static void Main()
{
Kala k1 = new Kala();
k1.Forush = 1500;
// Call Forush Property ::
Set :: vale = 1500
double f = k1.Forush;
// Call Forush Property ::
get
}
double _Forush;
public double Forush
{
get
{
return _Forush;
}
set
{
if (value > 0)
_Forush = value;
}
}
private double _Forush;
public double Forush
{
get
{
return _Forush;
}
set
{
if (value > 0)
_Forush = value;
}
}
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#11
6.ً‫ال‬‫معمو‬‫قسمت‬ ‫در‬get‫و‬set‫با‬‫قسمت‬ ‫در‬ ‫هم‬ ‫فوق‬ ‫مثال‬ ‫در‬ ً‫ال‬‫مث‬ ، ‫کنیم‬ ‫می‬ ‫کار‬ ‫یکسان‬ ‫و‬ ‫خاص‬ ‫فیلد‬ ‫یک‬get‫در‬ ‫هم‬ ‫و‬
‫قسمت‬set‫فیلد‬ ‫با‬_Forush‫دلخواهی‬ ‫کد‬ ‫هر‬ ‫توان‬ ‫می‬ ‫و‬ ‫ندارد‬ ‫الزامی‬ ‫هیچ‬ ‫ولی‬ ‫؛‬ ‫کنیم‬ ‫می‬ ‫کار‬‫نوشت‬ ‫آن‬ ‫در‬‫هر‬ ‫با‬ ‫و‬
( ‫فیلدی‬، ‫صفر‬‫نمود‬ ‫کار‬ )‫فیلد‬ ‫چند‬ ‫یا‬ ‫یک‬‫و‬‫قسمت‬ ‫در‬ ً‫ال‬‫مث‬ ‫که‬ ‫نمود‬ ‫کار‬ ‫ثبات‬ ‫مقادیر‬ ‫با‬ ‫کال‬ ‫یا‬get‫یک‬ ‫همیشه‬ ‫پراپرتی‬
‫ثابت‬ ‫مقدار‬. ‫برگرداند‬ ‫را‬
7.ً‫ال‬‫معمو‬‫یک‬ ‫کالسمان‬ ‫از‬ ‫ای‬ ‫ویژگی‬ ‫و‬ ‫مشخص‬ ‫هر‬ ‫برای‬ً‫ال‬‫مث‬ ، ‫نویسیم‬ ‫می‬ ‫پراپرتی‬( ‫پربودن‬ ‫برای‬ ‫پشته‬ ‫و‬ ‫صف‬ ‫در‬IsFull، )
(‫بودن‬ ‫خالی‬IsEnpty( ‫هستند‬ ‫صف‬ ‫داخل‬ ‫که‬ ‫عناصری‬ ‫تعداد‬ ، )Count(‫صف‬ ‫طول‬ ‫و‬ )Length‫و‬ ‫ها‬ ‫مشخصه‬ ‫جز‬ ‫که‬ )
. ‫نویسیم‬ ‫می‬ ‫پراپرتی‬ ، ‫است‬ ‫کالسمان‬ ‫های‬ ‫ویژگی‬
‫ایندکسر‬:
‫ایندکسر‬‫است‬ ‫پراپرتی‬ ‫یک‬‫آن‬ ‫نام‬ ‫که‬ ،this‫داخل‬ ‫که‬ ‫باشد‬ ‫می‬ ‫نیز‬ ‫ورودی‬ ‫آرگومان‬ ‫دارای‬ ‫و‬ ‫بوده‬[]‫شوند‬ ‫می‬ ‫تعریف‬.
‫فراخوانی‬: ‫ایندکسر‬‫ایندکسر‬ ‫فراخوانی‬ ‫برای‬‫ایندکسر‬ ‫اگر‬ ،static‫باشد‬‫ابتدا‬ ‫باید‬‫نا‬‫کالس‬ ‫م‬‫آن‬ ‫جلوی‬ ‫سپس‬ ‫و‬[]
‫داخل‬ ‫و‬ ‫نوشته‬ ‫را‬[]‫ورودی‬ ‫های‬ ‫آرگومان‬‫نوشته‬ ‫را‬‫ا‬ ‫و‬‫گر‬non-static‫باشد‬‫از‬ ‫کالس‬ ‫نام‬ ‫بجای‬ ‫باید‬‫شی‬ ‫نام‬‫کالسمان‬ ‫نوع‬ ‫از‬ ‫ای‬
. ) ‫باشد‬ ‫می‬ ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫که‬ ‫متغییری‬ ‫(نام‬ ‫نموده‬ ‫استفاده‬
ً‫ال‬‫معمو‬‫در‬ ‫آرایه‬ ‫آن‬ ‫عناصر‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ، ‫داریم‬ ‫آرایه‬ ‫کالسمان‬ ‫در‬ ‫که‬ ‫وقتی‬‫نویسیم‬ ‫می‬ ‫ایدکسر‬ ‫کالس‬ ‫از‬ ‫خارج‬.
‫از‬‫آن‬ ‫نام‬ ‫و‬ ‫است‬ ‫ورودی‬ ‫آرگومان‬ ‫دارای‬ ‫ایندکسر‬ ‫که‬ ‫آنجا‬this‫برای‬ ، ‫است‬‫نوع‬ ‫یا‬ ‫تعداد‬ ‫در‬ ‫باید‬ ‫ایندکسر‬ ‫چند‬ ‫نوشتن‬
‫و‬ ‫های‬ ‫آرگومان‬‫باشند‬ ‫داشته‬ ‫فرق‬ ‫یکدگیر‬ ‫با‬ ‫رودی‬‫کالس‬ ‫برای‬ ‫مثال‬ ‫؛‬Kala: ‫نوشت‬ ‫توان‬ ‫می‬
public double this[bool Kharid]
{
get
{
if (Kharid)//Kharid = true
return this.Kharid;
return Forush;//Kharid = fasle
}
set
{
if (Kharid)//Kharid = true
this.Kharid = value;
else//Kharid = fasle
Forush = value;
}
}
‫این‬‫ورودی‬ ‫آرگومان‬ ‫دارای‬ ‫ایندکسر‬‫بنام‬ ‫ای‬Kharid‫فیلد‬ ‫با‬ : ‫(توجه‬ ‫باشد‬ ‫می‬‫نام‬ ‫به‬ ‫که‬ ‫ی‬Kharid‫د‬‫می‬ ‫پیش‬ ‫تداخل‬ ‫اریم‬
‫آید‬،‫بنویسیم‬ ‫جا‬ ‫هر‬ ‫پس‬Kharid‫هرجا‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫استفاده‬ ‫ایندکسر‬ ‫ورودی‬ ‫آرگومان‬ ‫از‬ ‫داریم‬‫بنویسیم‬this.Kharid‫با‬ ‫داریم‬
‫آرگومان‬ ‫این‬ ‫مقدار‬ ‫اگر‬ ، )‫کنیم‬ ‫می‬ ‫کار‬ ‫کالس‬ ‫فیلد‬true‫فیلد‬ ‫مقدار‬ ، ‫باشد‬Kharid‫واگر‬ ‫گرداند‬ ‫برمی‬ ‫یا‬ ‫و‬ ‫کند‬ ‫می‬ ‫دهی‬ ‫مقدار‬ ‫را‬
‫آرگومان‬ ‫این‬ ‫مقدار‬fasle‫فیلد‬ ‫مقدار‬ ‫باشد‬Forush‫یا‬ ‫گرداند‬ ‫می‬ ‫بر‬ ‫را‬‫آن‬ ‫به‬‫کند‬ ‫می‬ ‫دهی‬ ‫مقدار‬‫ّا‬‫م‬‫وا‬ ،Main:
static void Main()
{
Kala k1 = new Kala("Adams", 12, 250,465);
k1[true] = 15;//set k1.Kharid : 15
double Fo = k1[false];//get k1.Forush
}
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#11
‫ایندکسر‬‫زیر‬‫و‬ ‫کند‬ ‫می‬ ‫چکار‬ ‫که‬ ‫کنید‬ ‫بررسی‬ ‫را‬Main: ‫بنویسید‬ ‫نیز‬ ‫را‬ ‫آن‬
public double this[Int64 Tedad]
{
get
{
if (Tedad <= 0)
return (Forush - Kharid) * TeFo;
return (Forush - Kharid) * Tedad;
}
}
‫و‬: ‫آن‬ ‫ایندکسر‬ ‫و‬ ‫فروشگاه‬ ‫کالس‬ ‫اما‬
class Shop
{
Kala[] Data;
int _Count;
public Shop(int Size)
{
Data = new Kala[Size];
_Count = 0;
}
public Kala this[int i]
{
get
{
if (i < 0 || i >= _Count)
throw new Exception("Bache Dast Nazan !");
return Data[i];
}
set
{
if (i < 0 || i >= _Count)
throw new Exception("Bache Dast Nazan !");
Data[i] = value;
}
}
}
‫و‬‫حاال‬‫آقا/خانم‬ ‫هم‬ ‫این‬ ‫و‬ ‫شما‬ ‫این‬Main:
static void Main()
{
int Kheyli = 100000;
Shop BaghalieSareKouche = new Shop(Kheyli);
int BastaniIndex = 5;
double YeGheroun = 150;
double Geruoon = 1500;
Kala k1 = new Kala("Bastani", YeGheroun, Geruoon);
BaghalieSareKouche[BastaniIndex] = k1;
}
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#12
‫متد‬:
‫در‬‫باالی‬ ‫را‬ ‫متدها‬ ، ‫نوشتیم‬ ‫متد‬ ‫که‬ ‫قبل‬ ‫های‬ ‫مثال‬Main‫نوشته‬، ‫بودیم‬‫متد‬ ‫اگر‬ ‫که‬ ، ‫نوشت‬ ‫متد‬ ‫نیز‬ ‫کالس‬ ‫خود‬ ‫در‬ ‫توان‬ ‫می‬
static‫اگر‬ ‫و‬ ، ‫داریم‬ ‫دسترسی‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫نام‬ ‫خود‬ ‫طریق‬ ‫از‬ ‫باشد‬non-static‫کال‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫طریق‬ ‫از‬ ‫باشد‬‫آن‬ ‫به‬ ‫سمان‬
‫داشت‬ ‫خواهیم‬ ‫دسترسی‬:
class Kala
{
public string Name;
public double Kharid;
public double Forush;
public Int64 TeFo;
public Kala(string Name, double Kharid,
double Forush, Int64 TeFo)
{
this.Name = Name;
this.Kharid = Kharid;
this.Forush = Forush;
this.TeFo = TeFo;
}
public static double Soud(Kala k)
{
return (k.Forush - k.Kharid) * k.TeFo;
}
}
static void Main()
{
Kala k1 = new Kala("Danet", 120, 100, 250);
double s = Kala.Soud(k1);
}
class Kala
{
public string Name;
public double Kharid;
public double Forush;
public Int64 TeFo;
public Kala(string Name, double Kharid,
double Forush, Int64 TeFo)
{
this.Name = Name;
this.Kharid = Kharid;
this.Forush = Forush;
this.TeFo = TeFo;
}
public double Soud()
{
return (Forush - Kharid) * TeFo;
}
}
static void Main()
{
Kala k1 = new Kala("Danet", 120, 100, 250);
double s = k1.Soud();
}
static‫و‬non-static:‫ب‬‫تر‬ ‫دقیق‬ ‫ررسی‬‫متد‬‫ایندکسر‬ ، ‫پراپرتی‬ ،‫و‬‫سازنده‬) ‫است‬ ‫شده‬ ‫بررسی‬ ‫قبال‬ ‫(فیلد‬:
‫این‬ ‫اگر‬‫اعضا‬static‫باشند‬. ‫داریم‬ ‫دسترسی‬ ‫ها‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫نام‬ ‫طریق‬ ‫،از‬
‫اگر‬‫اعضا‬ ‫این‬non-static‫باش‬‫ن‬. ‫داریم‬ ‫دسترسی‬ ‫ها‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫طریق‬ ‫از‬ ، ‫د‬
‫اگر‬‫اعضا‬ ‫این‬static‫فق‬ ‫و‬ ‫فقط‬ ‫در‬ ، ‫باشند‬‫اعضای‬ ‫به‬ ‫ط‬static. ‫داشت‬ ‫خواهیم‬ ‫دسترسی‬
‫اگر‬‫اعضا‬ ‫این‬static‫باشند‬‫به‬ ،this‫نخو‬ ‫دسترسی‬ ، ‫است‬ ‫جاری‬ ‫شی‬ ‫به‬ ‫مربوط‬ ‫که‬. ‫داشت‬ ‫اهیم‬
‫اگر‬‫اعضا‬ ‫این‬non-static‫و‬ ‫اعضا‬ ‫به‬ ‫هم‬ ، ‫باشند‬‫عناصر‬static‫هم‬ ‫و‬‫عناصر‬ ‫و‬ ‫اعضا‬ ‫به‬non-static‫جمله‬ ‫(من‬this)
. ‫داشت‬ ‫خواهیم‬ ‫دسترسی‬
‫اگر‬‫که‬ ‫باشیم‬ ‫داشته‬ ‫عضوی‬static‫باشد‬)‫سازنده‬ ‫و‬ ‫ایندکسر‬ ، ‫(متد‬‫بصورت‬ ‫را‬ ‫آن‬ ‫بخواهیم‬ ‫و‬ ،non-static، ‫بنویسیم‬
، ‫است‬ ‫شده‬ ‫حذف‬ ‫که‬ ‫آرگومان‬ ‫آن‬ ‫اسم‬ ‫جای‬ ‫به‬ ‫عضو‬ ‫بدنه‬ ‫داخل‬ ‫و‬ ، ‫نموده‬ ‫حذف‬ ‫را‬ ‫آن‬ ‫ورودی‬ ‫های‬ ‫آرگومان‬ ‫از‬ ‫یکی‬ ‫باید‬‫از‬this
‫توان‬ ‫می‬ ‫باشد‬ ‫نداشته‬ ‫وجود‬ ‫تداخلی‬ ‫هیچ‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫و‬ ‫نموده‬ ‫استفاده‬this.‫را‬. ‫ننوشت‬ ‫نیز‬
‫اگر‬‫عضوی‬non-static‫بصورت‬ ‫را‬ ‫آن‬ ‫بخواهیم‬ ‫و‬ ‫باشد‬static‫آرگومان‬ ‫به‬ ‫کالس‬ ‫خود‬ ‫نوع‬ ‫از‬ ‫آرگومانی‬ ‫باید‬ ، ‫بنویسیم‬
‫که‬ ‫هرجا‬ ‫و‬ ‫نموده‬ ‫اضافه‬ ‫آن‬ ‫های‬this‫اعضای‬ ‫از‬ ‫داریم‬ ‫که‬ ‫هرجا‬ ‫و‬ ‫بنویسیم‬ ‫را‬ ‫شده‬ ‫اضافه‬ ‫آرگومان‬ ‫نام‬ ‫داریم‬non-static‫کالس‬
‫باید‬ ، ‫کنیم‬ ‫می‬ ‫استفاده‬. ‫نمود‬ ‫اضافه‬ ‫آنها‬ ‫اسم‬ ‫از‬ ‫قبل‬ ) ).(‫دانت‬ ‫همراه‬ ‫(به‬ ‫شده‬ ‫اضافه‬ ‫آرگومان‬ ‫نام‬
‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#13
‫خود‬‫بصورت‬ ‫تواند‬ ‫می‬ ‫نیز‬ ‫کالس‬static.. ‫و‬. ‫خواند‬ ‫خواهید‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫در‬ ‫که‬ ‫شود‬ ‫تعریف‬ ‫نیز‬ .
‫مثال‬‫استاد‬ ‫که‬ ‫را‬ ‫ها‬ ‫صف‬‫اند‬ ‫گفته‬‫همچنین‬ ‫و‬ ‫کنید‬ ‫مرور‬ ‫را‬‫دفترچه‬ ‫مثال‬‫تلفنی‬‫کالس‬ ‫سر‬ ‫که‬ ‫را‬‫ب‬ ‫دقت‬ ‫با‬ ‫نیز‬ ‫را‬ ‫ام‬ ‫نوشته‬‫خوانید‬.
‫مباحث‬‫ترم‬ ‫پایان‬ ‫اصلی‬، ‫بود‬ ‫ها‬ ‫همین‬‫اشکاالت‬ ‫و‬ ‫خوانده‬ ‫را‬ ‫مطالب‬ ‫دقت‬ ‫با‬ ‫که‬ ‫خواهشمندم‬‫میان‬ ‫در‬ ‫خود‬ ‫سرگروه‬ ‫با‬ ‫ابتدا‬ ‫را‬ ‫خود‬
‫به‬ ‫دیگری‬ ‫اشکال‬ ‫و‬ ‫سوال‬ ‫هر‬ ‫داشتن‬ ‫صورت‬ ‫در‬ ‫و‬ ‫گذاشته‬. ‫دهید‬ ‫اطالع‬ ‫بنده‬
‫لطفا‬‫در‬‫در‬ ‫که‬ ‫صورتی‬، ‫دارید‬ ‫آن‬ ‫بهبود‬ ‫جهت‬ ‫دیگری‬ ‫پیشنهاد‬ ‫هر‬ ‫یا‬ ‫و‬ ‫است‬ ‫نشده‬ ‫گفته‬ ‫که‬ ‫مطلبی‬ ‫یا‬ ‫و‬ ‫دیدید‬ ‫اشکالی‬ ‫فایل‬ ‫این‬‫ب‬‫ه‬
. ‫دهید‬ ‫اطالع‬ ‫بنده‬
‫موفق‬‫باشید‬ ‫موید‬ ‫و‬
‫ّد‬‫م‬‫مح‬‫امجدی‬ ‫امین‬

More Related Content

More from Mohammad Amin Amjadi

Image Cryptography and Steganography
Image Cryptography and SteganographyImage Cryptography and Steganography
Image Cryptography and Steganography
Mohammad Amin Amjadi
 
memetic algorithm
memetic algorithmmemetic algorithm
memetic algorithm
Mohammad Amin Amjadi
 
rivercode.PDF
rivercode.PDFrivercode.PDF
rivercode.PDF
Mohammad Amin Amjadi
 

More from Mohammad Amin Amjadi (15)

Seminar-Architecture
Seminar-ArchitectureSeminar-Architecture
Seminar-Architecture
 
Image Cryptography and Steganography
Image Cryptography and SteganographyImage Cryptography and Steganography
Image Cryptography and Steganography
 
memetic algorithm
memetic algorithmmemetic algorithm
memetic algorithm
 
Az Micro
Az MicroAz Micro
Az Micro
 
my project
my projectmy project
my project
 
Rajabi
RajabiRajabi
Rajabi
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Amjadi
AmjadiAmjadi
Amjadi
 
rivercode.PDF
rivercode.PDFrivercode.PDF
rivercode.PDF
 
Documention
DocumentionDocumention
Documention
 
HotSpot
HotSpotHotSpot
HotSpot
 
GPGPU
GPGPUGPGPU
GPGPU
 
Lecture3
Lecture3Lecture3
Lecture3
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 

Amjadi - Ebook 7 - Class - v1

  • 1. ‫بنام‬‫ایزد‬‫خرد‬ ‫و‬ ‫جان‬ ‫نویسی‬ ‫برنامه‬c# ‫نویسنده‬‫مترجم‬ ،‫امجدی‬ ‫امین‬ ‫ّد‬‫م‬‫مح‬ : ‫گردآورنده‬ ‫و‬ ‫بخش‬‫هفتم‬ Class amjadima@gmail.com
  • 2. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#1 ‫شما‬ ‫به‬ ‫البته‬ ‫(که‬ ! ‫بنویسیم‬ ‫برنامه‬ ‫یک‬ ‫فروشگاه‬ ‫یک‬ ‫برای‬ ‫بخواهیم‬ ‫کنید‬ ‫فرض‬ ، ‫شدیم‬ ‫نویسی‬ ‫برنامه‬ ‫اصلی‬ ‫مبحث‬ ‫وارد‬ ‫تازه‬ ، ‫خب‬ ‫خیال‬ ، ‫بنویسید‬ ‫دهند‬ ‫نمی‬) ! ‫باشه‬ ‫راحت‬ ‫تون‬ . ‫نمائیم‬ ‫ذخیره‬ ‫را‬ ‫شده‬ ‫فروخته‬ ‫تعداد‬ ‫و‬ ‫فروش‬ ‫قیمت‬ ، ‫خرید‬ ‫قیمت‬ ، ‫کاال‬ ‫نام‬ ‫باید‬ ، ‫بنویسیم‬ ‫خواهیم‬ ‫می‬ ‫که‬ ‫ای‬ ‫ساده‬ ‫فروشگاه‬ ‫این‬ ‫در‬ : ‫کنیم‬ ‫تعریف‬ ‫را‬ ‫زیر‬ ‫های‬ ‫متغییر‬ ‫باید‬ ‫اطالعات‬ ‫ذخیره‬ ‫برای‬ ‫پس‬ using System; namespace Test_1 { class Program { static void Main(string[] args) { int Tedad = Convert.ToInt32(Console.ReadLine()); string[] Name = new string[Tedad]; double[] Kharid = new double[Tedad]; double[] Forush = new double[Tedad]; Int64[] TeFo = new Int64[Tedad]; } } } ‫فروشگاه‬ ‫اطالعات‬ •‫ها‬ ‫کاال‬ ‫نام‬ •‫کاال‬ ‫هر‬ ‫خرید‬ ‫قیمت‬ •‫کاال‬ ‫هر‬ ‫فروش‬ ‫قیمت‬ •‫کاال‬ ‫هر‬ ‫از‬ ‫رفته‬ ‫فروش‬ ‫تعداد‬ ‫کاال‬ ‫نوع‬ ‫هر‬ ‫از‬ ‫اجناس‬ ‫تعداد‬Tedad ‫کاالها‬ ‫نام‬Name ‫کاال‬ ‫هر‬ ‫خرید‬ ‫قیمت‬Kharid ‫کاال‬ ‫هر‬ ‫فروش‬ ‫قیمت‬Forush ‫کاال‬ ‫هر‬ ‫رفته‬ ‫فروش‬ ‫تعداد‬TeFo
  • 3. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#2 : ‫هستند‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫ها‬ ‫آرایه‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬ ‫حال‬ Tedad-1Tedad-2‫کاالی‬i‫ام‬3210i ‫کاالی‬ ‫نام‬i‫ام‬Name ‫کاالی‬ ‫خرید‬ ‫قیمت‬i‫ام‬Kharid ‫کاالی‬ ‫فروش‬ ‫قیمت‬i‫ام‬Forush ‫کاالی‬ ‫فروش‬ ‫تعداد‬i‫ام‬TeFo ‫خانه‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫دقت‬ ‫پس‬i‫کاالی‬ ‫به‬ ‫مربوط‬ ‫ها‬ ‫آرایه‬ ‫تمام‬ ‫ام‬i. ‫بوده‬ ‫را‬ ‫زیر‬ ‫متد‬ ، ‫کنیم‬ ‫دریافت‬ ‫را‬ ‫کاالها‬ ‫تمام‬ ‫اطالعات‬ ، ‫خواهیم‬ ‫می‬ ‫حال‬‫باال‬Main: ‫نویسیم‬ ‫می‬ static void ReadKala(string[] N, double[] Kh , double[] F , Int64[] TF) { for(int i = 0 ; i < N.Length ; i++) { N[i] = Console.ReadLine(); Kh[i] = Convert.ToDouble(Console.ReadLine()); F[i] = Convert.ToDouble(Console.ReadLine()); TF[i] = Convert.ToInt64(Console.ReadLine()); } } ‫متد‬ ‫یک‬ ‫این‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬static‫به‬ ‫ربطی‬ ‫هیچ‬ ‫آن‬ ‫ورودی‬ ‫های‬ ‫آرگومان‬ ‫و‬ ، )‫اینجا‬ ‫هرچیزی(در‬ ‫از‬ ‫مستقل‬ ‫و‬ ‫است‬ ‫داخل‬ ‫متغییرهای‬Main‫ندارد‬ ‫دیگر‬ ‫متدهای‬ ‫سایر‬ ‫و‬. ‫داخل‬ ، ‫کنیم‬ ‫استفاده‬ ‫متد‬ ‫این‬ ‫از‬ ‫خواهیم‬ ‫می‬ ‫حال‬Main: ‫کنیم‬ ‫می‬ ‫اضافه‬ ‫را‬ ‫زیر‬ ‫کد‬ ReadKala(Name, Kharid, Forush, TeFo); ‫داخل‬ ‫متغییرهای‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬Main‫متد‬ ‫ورودی‬ ‫ها‬ ‫آرگومان‬ ‫به‬ ‫را‬ReadKala: ‫ایم‬ ‫نموده‬ ‫پاس‬ static void ReadKala(string[] N, double[] Kh , double[] F , Int64[] TF) ReadKala(Name, Kharid, Forush, TeFo);
  • 4. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#3 ‫خواهیم‬ ‫می‬ ‫حال‬‫متد‬ ‫که‬ ‫است‬ ‫کافی‬ ، ‫نماید‬ ‫محاسبه‬ ‫را‬ ‫فروشگاه‬ ‫در‬ ‫شده‬ ‫فروخته‬ ‫کاالهای‬ ‫کل‬ ‫تعداد‬ ‫که‬ ‫بنویسیم‬ ‫متدی‬،‫فروش‬ ‫تعداد‬ : ‫نماید‬ ‫جمع‬ ‫هم‬ ‫با‬ ‫را‬ ‫همگی‬ ‫و‬ ‫گرفته‬ ‫را‬ ‫کاالها‬ ‫تمام‬ static Int64 TedadeForush(Int64[] TF) { Int64 r = 0; for (int i = 0; i < TF.Length; i++) { r += TF[i]; } return r; } ‫داخل‬ ‫حال‬ ‫و‬Main: ‫نویسیم‬ ‫می‬ Console.WriteLine(TedadeForush(TeFo)); ‫را‬ ‫سود‬ ‫باید‬ ‫چگونه‬ ‫خب‬ ‫؛‬ ‫نمائیم‬ ‫محاسبه‬ ‫را‬ ‫سود‬ ‫مقدار‬ ‫خواهیم‬ ‫می‬ ‫فروشنده‬ ‫برای‬ ‫حال‬‫؟‬ ‫نمود‬ ‫محاسبه‬ ‫فروخته‬ ‫اجناس‬ ‫تعداد‬ ‫در‬ ‫را‬ ‫حاصل‬ ‫سپس‬ ‫و‬ ‫نموده‬ ‫محاسبه‬ ‫کاال‬ ‫آن‬ ‫از‬ ‫جنس‬ ‫یک‬ ‫فقط‬ ‫فروش‬ ‫برای‬ ‫را‬ ‫فروش‬ ‫سود‬ ‫کاال‬ ‫هر‬ ‫برای‬ ‫ابتدا‬ ‫شود‬ ‫می‬ ‫که‬ ‫آوریم‬ ‫می‬ ‫بدست‬ ‫را‬ ‫کاالها‬ ‫تمام‬ ‫سود‬ ‫مجموع‬ ‫سپس‬ ، ‫کاال‬ ‫یک‬ ‫از‬ ‫سودفروش‬ ‫شود‬ ‫می‬ ‫این‬ ‫که‬ ‫نموده‬ ‫کاال‬ ‫آن‬ ‫از‬ ‫شده‬ . ‫فروشنده‬ ‫سود‬ static Int64 Soud(double[] Kh, double[] F, Int64[] TF) { Int64 r = 0; for (int i = 0; i < Kh.Length; i++) { r = (Int64)(F[i] - Kh[i]) * TF[i]; } return r; } ‫داخ‬ ‫که‬‫ل‬Main: ‫نویسیم‬ ‫می‬ Console.WriteLine(Soud(Kharid, Forush, TeFo)); ‫در‬ ‫کامل‬ ‫بصورت‬ ‫را‬ ‫کد‬ ‫این‬ ‫شما‬ ‫حاال‬ ، ‫خب‬VisualStudio. ‫نموده‬ ‫اجرا‬ ‫آنرا‬ ‫و‬ ‫شده‬ ‫مسلط‬ ‫آن‬ ‫قسمت‬ ‫قسمت‬ ‫بر‬ ‫و‬ ، ‫نوشته‬ ‫خیل‬ ‫های‬ ‫ویژگی‬ ‫دارای‬ ‫هم‬ ‫کاالها‬ ‫و‬ ، ‫باشیم‬ ‫داشته‬ ‫فروشگاه‬ ‫چندین‬ ‫باشد‬ ‫قرار‬ ‫کنید‬ ‫فرض‬ ‫حال‬... ‫و‬ ‫اند‬ ‫بیشتری‬ ‫خیلی‬ ‫ی‬ ‫؟‬ ‫است‬ .... ‫و‬ ‫خوانا‬ ‫کدنویسی‬ ‫روش‬ ‫این‬ ‫بنظرتان‬ ‫آیا‬ ‫که‬ ‫طور‬ ‫همان‬ ‫ما‬ ‫که‬ ‫کنید‬ ‫فرض‬int،double‫نام‬ ‫به‬ ‫تایپی‬ ، ‫داریم‬ ... ‫و‬Kala‫قیمت‬ ، ‫نام‬ ‫دارای‬ ‫خود‬ ‫کاالیی‬ ‫هر‬ ‫که‬ ‫باشیم‬ ‫داشته‬ !‫؟‬ ‫نه‬ ، ‫شود‬ ‫می‬ ‫چی‬ ‫وای‬ ، ‫باشد‬ ‫فروش‬ ‫تعداد‬ ‫و‬ ‫فروش‬ ‫قیمت‬ ، ‫خرید‬ ‫کاال‬ •‫نام‬ •‫خرید‬ ‫قیمت‬ •‫فروش‬ ‫قیمت‬ •‫فروش‬ ‫تعداد‬
  • 5. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#4 ، ‫خب‬‫باالی‬ ، ‫کاال‬ ‫تعریف‬ ‫برای‬Main‫نام‬ ‫به‬ ‫کالس‬ ‫یک‬Kala: ‫کنیم‬ ‫می‬ ‫تعریف‬ class Kala { public string Name; public double Kharid; public double Forush; public Int64 TeFo; } ‫بعد‬ ‫به‬ ‫حاال‬ ‫از‬Kala‫ی‬‫یا‬ ‫خرید‬ ‫قیمت‬ ‫که‬ ‫کنیم‬ ‫تعریف‬ ‫را‬ ‫َس‬‫ل‬َ‫م‬ ‫نام‬ ‫به‬ ‫کاالیی‬ ً‫ال‬‫مث‬ ‫خواهیم‬ ‫می‬ ‫حاال‬ ‫خب‬ ‫؛‬ ‫شود‬ ‫می‬ ‫محسوب‬ ‫تایپ‬ ‫ک‬ ‫آن‬ ‫تولید‬52‫آن‬ ‫فروش‬ ‫قیمت‬ ‫و‬ ‫بوده‬ ‫تومان‬522‫که‬ ‫باشد‬ ‫می‬ ‫تومن‬4: ! ‫میخرند‬ ‫میرن‬ ‫خوش‬ ‫و‬ ‫بیکار‬ ‫آدم‬ ‫تا‬ Kala k = new Kala(); k.Name = "Malas !"; k.Kharid = 25; k.Forush = 250; k.TeFo = 4; ‫بر‬ ‫عالوه‬ ‫فروشگاه‬ ‫یک‬ ‫برای‬ ‫خب‬ ، ‫بنویسیم‬ ‫کاال‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫بودیم‬ ‫نوشته‬ ‫ها‬ ‫آرایه‬ ‫با‬ ‫کال‬ ‫که‬ ‫را‬ ‫قبال‬ ‫برنامه‬ ‫همان‬ ‫خواهیم‬ ‫می‬ ‫حاال‬ ‫کاال‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫به‬ !‫؟‬ ‫داریم‬ ‫نیاز‬ ‫چی‬ ‫به‬ ‫کیشمیش‬ ‫و‬ ‫نخود‬‫نویسیم‬ ‫می‬ ‫پس‬ ‫؛‬ ‫؟‬ ‫نه‬ ، ‫ها‬: static void Main(string[] args) { int Tedad = Convert.ToInt32(Console.ReadLine()); Kala[] k = new Kala[Tedad]; ReadKala(k); Console.WriteLine(TedadeForush(k)); Console.WriteLine(Soud(k)); } ‫باالی‬ ، ‫گیرند‬ ‫می‬ ‫کاالها‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫هرکدام‬ ‫که‬ ‫شکل‬ ‫بدین‬ ، ‫کنیم‬ ‫می‬ ‫بازنویسی‬ ‫هم‬ ‫را‬ ‫قبلی‬ ‫متدهای‬ ‫ّا‬‫م‬‫ا‬ ‫و‬Main: ‫نویسیم‬ ‫می‬ static void ReadKala(Kala[] Ka) { for (int i = 0; i < Ka.Length; i++) { //********** new Ka[i] : ******************** //******* Don't Forget Ka[i] = new Kala(); //Read Ka[i] Ka[i].Name = Console.ReadLine(); Ka[i].Kharid = Convert.ToDouble(Console.ReadLine()); Ka[i].Forush = Convert.ToDouble(Console.ReadLine()); Ka[i].TeFo = Convert.ToInt64(Console.ReadLine()); } } ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬Ka‫از‬ ‫آرایه‬ ‫یک‬Kala‫پس‬ ، ‫بوده‬ ‫ها‬ka[i]‫نوع‬ ‫از‬ ‫که‬ ‫ای‬ ‫شی‬ ‫هر‬ ‫و‬ ، ‫باشد‬ ‫می‬ ‫کاال‬ ‫یک‬ ‫خود‬class ‫را‬ ‫آن‬ ً‫ا‬‫حتم‬ ‫ابتدا‬ ‫باید‬ ، ‫کنیم‬ ‫کار‬ ‫آن‬ ‫با‬ ‫بخواهیم‬ ‫و‬ ‫داریم‬new. ‫کنیم‬ static Int64 TedadeForush(Kala[] Ka) { Int64 r = 0; for (int i = 0; i < Ka.Length; i++) { r += Ka[i].TeFo; } return r; }
  • 6. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#5 static Int64 Soud(Kala[] ka) { Int64 r = 0; for (int i = 0; i < ka.Length; i++) { r = (Int64)(ka[i].Forush - ka[i].Kharid) * ka[i].TeFo; } return r; } : ‫نکات‬ 1.‫یک‬ ‫نوع‬ ‫از‬ ‫متغییر‬ ‫یک‬ ‫که‬ ‫وقتی‬class‫آنرا‬ ‫حتما‬ ‫باید‬ ، ‫کنیم‬ ‫می‬ ‫تعریف‬new‫آن‬ ‫با‬ ‫سپس‬ ‫و‬ ‫نمائیم‬: ‫کنیم‬ ‫کار‬ Kala k = new Kala(); 5.‫نوع‬ ‫از‬ ‫آرایه‬ ‫یک‬ ‫که‬ ‫وقتی‬class‫ای‬، ‫داریم‬‫را‬ ‫آرایه‬ ‫آن‬ ‫ابتدا‬ ‫باید‬new: ‫کنیم‬ Kala[] k = new Kala[Tedad]; ‫های‬ ‫خانه‬ ‫از‬ ‫کدام‬ ‫هر‬ ‫باز‬ ‫و‬‫یک‬ ‫خود‬ ‫آرایه‬kala‫را‬ ‫ها‬ ‫آن‬ ‫تک‬ ‫تک‬ ، )‫یک‬ ‫(نکته‬ ‫قبلی‬ ‫نکته‬ ‫براساس‬ ‫باید‬ ‫پس‬ ، ‫هستند‬ new: ‫نمود‬ for (int i = 0; i < k.Length; i++ ) { k[i] = new Kala(); } 3.‫هنگام‬ ‫به‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬new‫از‬ ‫آرایه‬ ‫نمودن‬[]‫هنگام‬ ‫به‬ ‫و‬new‫از‬ ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫نمودن‬()‫استفاده‬ . ‫نموده‬ : ‫فیلد‬ ‫در‬ ‫که‬ ‫هستند‬ ‫متغییرها‬ ‫همانند‬ ، ‫ها‬ ‫فیلد‬class. ‫بوده‬ ‫اطالعات‬ ‫سازی‬ ‫ذخیره‬ ‫محل‬ ‫و‬ ‫شده‬ ‫نوشته‬ ‫فوق‬ ‫مثال‬ ‫در‬Name،Kharid،Forush‫و‬TeFo‫کالس‬ ‫فیلدهای‬Kala. ‫شوند‬ ‫می‬ ‫محسوب‬ : ‫دسترسی‬ ‫سطوح‬(‫شده‬ ‫قرمز‬ ‫های‬ ‫قسمت‬‫آموخت‬ ‫خواهید‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫در‬ ‫را‬) ، ‫سازنده‬ ، ‫(فیلد‬ ‫کالس‬ ‫عناصر‬ ‫و‬ ‫اعضا‬‫مخرب‬، ‫متد‬ ، ‫ایندکسر‬ ، ‫پراپرتی‬ ،‫عملگرها‬‫و‬‫رویدادها‬‫دار‬ ‫توانند‬ ‫می‬ )‫س‬ ‫ای‬‫طوح‬ ‫دسترسی‬private،public‫و‬protected. ‫باشند‬ ‫بصورت‬ ‫کالس‬ ‫از‬ ‫عضوی‬ ‫اگر‬private‫آن‬ ‫به‬ ‫کالس‬ ‫خود‬ ‫داخل‬ ‫فقط‬ ‫و‬ ‫فقط‬ ، ‫شود‬ ‫تعریف‬‫از‬ ‫خارج‬ ‫در‬ ‫و‬ ‫داریم‬ ‫دسترسی‬ ‫و‬ ‫ها‬ ‫کالس‬ ‫سایر‬ ‫(در‬ ‫کالس‬Main. ‫داشت‬ ‫نخواهیم‬ ‫دسترسی‬ ‫آنها‬ ‫به‬ ).... ‫و‬ ‫آن‬ ‫دسترسی‬ ‫سطح‬ ، ‫ننمائیم‬ ‫مشخص‬ ‫را‬ ‫دسترسی‬ ‫سطح‬ ‫کالس‬ ‫از‬ ‫عضوی‬ ‫برای‬ ‫اگر‬private. ‫بود‬ ‫خواهد‬ ، ‫باشد‬ ‫دسترس‬ ‫در‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫جا‬ ‫همه‬ ‫کالس‬ ‫از‬ ‫عضوی‬ ‫بخواهیم‬ ‫اگر‬‫باید‬public‫تعر‬‫باشد‬ ‫شده‬ ‫یف‬. ‫سط‬ ‫دارای‬ ‫نیز‬ ‫کالس‬ ‫خود‬‫و‬( ‫است‬ ‫دسترسی‬ ‫ح‬private،protected،internal‫و‬public)
  • 7. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#6 Static‫و‬non-static: ‫توانند‬ ‫می‬ ‫کالس‬ ‫عناصر‬ ‫و‬ ‫اعضا‬static‫یا‬non-static. ‫باشند‬ ‫عناصر‬ ‫و‬ ‫اعضا‬static‫خود‬ ‫از‬ ‫باید‬ ‫آنها‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫و‬ ‫بوده‬ ‫کالس‬ ‫خود‬ ‫به‬ ‫مربوط‬ ،: ‫نمود‬ ‫استفاده‬ ‫کالس‬ class MyMath { public readonly static double PI = 3.14; } static void Main(string[] args) { Console.WriteLine(MyMath.PI); } ‫فیلد‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ، ‫بینید‬ ‫می‬ ‫که‬ ‫طور‬ ‫همان‬static،PI‫کالس‬ ‫از‬MyMath‫داخل‬ ،Main‫وسپس‬ ‫کالس‬ ‫نام‬ ‫ابتدا‬ . ‫نوشته‬ ‫را‬ ‫فیلد‬ ‫نام‬ Readonly‫باشد‬ ‫نمی‬ ‫پیشرفته‬ ‫درس‬ ‫به‬ ‫مربوط‬(‫شود‬ ‫نمی‬ ‫گفته‬ ‫هم‬ ‫گرا‬ ‫شی‬ ‫در‬‫برای‬ :‫خواند‬ ‫فقط‬‫ن‬‫استف‬ ‫بودن‬ ‫ی‬‫شود‬ ‫می‬ ‫اده‬) ‫عناصر‬ ‫و‬ ‫اعضا‬non-static‫آنها‬ ‫به‬ ‫تعریف‬ ‫هنگام‬ ‫در‬ ‫که‬ ،static‫ندهی‬ ‫نسبت‬ ‫را‬‫بوده‬ ‫کالس‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫به‬ ‫مربوط‬ ، ‫م‬ : ‫نمائیم‬ ‫استفاده‬ ‫کالس‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫از‬ ‫باید‬ ‫آنها‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫و‬ class MyMath { public readonly double PI = 3.14; } static void Main(string[] args) { MyMath m = new MyMath(); Console.WriteLine(m.PI); } ‫فیلد‬ ، ‫فوق‬ ‫کد‬ ‫در‬PI‫کالس‬ ‫از‬MyMath‫که‬non-static‫(غیر‬static‫در‬ ‫آن‬ ‫از‬ ‫اینکه‬ ‫برای‬ ، ‫باشد‬ ‫می‬ )Main‫هرجای‬ ‫یا‬ ‫موج‬ ‫شی‬ ‫از‬ ‫نموده(یا‬ ‫تعریف‬ ‫را‬ ‫شی‬ ‫یک‬ ‫ابتدا‬ ‫باید‬ ، ‫نمائیم‬ ‫استفاده‬ ‫کالس‬ ‫از‬ ‫خارج‬ ‫در‬ ‫دیگری‬‫س‬ ‫و‬ ‫شی‬ ‫نام‬ ، )‫نموده‬ ‫استفاده‬ ‫ود‬‫پس‬ . ‫نوشته‬ ‫را‬ )‫نباشد‬ ‫استاتیک‬ ‫که‬ ‫عضوی‬ ‫(هر‬ ‫فیلد‬ ‫نام‬ ‫باید‬ : ‫سازنده‬ ‫آنرا‬ ‫ابتدا‬ ‫باید‬ ‫کالسمان‬ ‫نوع‬ ‫ای‬ ‫شی‬ ‫هر‬ ‫از‬ ‫استفاده‬ ‫برای‬new‫نموده‬‫فراخوانی‬ ‫را‬ ‫کالس‬ ‫سازنده‬ ‫داریم‬ ‫واقع‬ ‫در‬ ‫کار‬ ‫این‬ ‫با‬ ‫که‬ ، ‫فی‬ ‫به‬ ‫اولیه‬ ‫مقداردهی‬ ‫و‬ ‫حافظه‬ ‫تخصیص‬ ‫و‬ ‫کنیم‬ ‫می‬. ‫دهیم‬ ‫می‬ ‫انجام‬ ‫را‬ ‫لدها‬ . ‫باشد‬ ‫کالس‬ ‫نام‬ ‫هم‬ ‫حتما‬ ‫باید‬ ‫و‬ ‫ندارد‬ ‫خروجی‬ ‫که‬ ‫است‬ ‫متد‬ ‫همانند‬ ‫سازنده‬ ‫نیست‬ ‫درست‬ ‫لفظ‬ ‫این‬ ‫دقیقا‬ ‫(البته‬ ‫گوئیم‬ ‫می‬ ‫فرض‬ ‫پیش‬ ‫سازنده‬ ، ‫ندارد‬ ‫ای‬ ‫ورودی‬ ‫آرگومان‬ ‫هیچ‬ ‫که‬ ‫ای‬ ‫سازنده‬ ‫به‬!. ) ‫س‬ ‫از‬ ‫باید‬ ، ‫ایم‬ ‫ننوشته‬ ‫ای‬ ‫سازنده‬ ‫هیچ‬ ‫خود‬ ‫کالس‬ ‫برای‬ ‫که‬ ‫زمانی‬. ‫نمود‬ ‫استفاده‬ ‫فرض‬ ‫پیش‬ ‫ازنده‬ ‫آرگومان‬ ‫فرض(بدون‬ ‫پیش‬ ‫سازنده‬ ‫و‬ ‫نمود‬ ‫استفاده‬ ‫فرض‬ ‫پیش‬ ‫سازنده‬ ‫از‬ ‫توان‬ ‫نمی‬ ‫بنویسیم‬ ‫ای‬ ‫سازنده‬ ‫کالسمان‬ ‫برای‬ ‫اگر‬ . ‫بنویسیم‬ ‫باید‬ ‫خودمان‬ ‫را‬ )‫ورودی‬ ‫ی‬ ‫تعداد‬ ‫در‬ ‫آنکه‬ ‫به‬ ‫منوط‬ ‫بنویسیم‬ ‫کالسمان‬ ‫برای‬ ‫سازنده‬ ‫چندین‬ ، ‫نام‬ ‫هم‬ ‫متدهای‬ ‫همانند‬ ‫توانیم‬ ‫می‬‫های‬ ‫آرگومان‬ ‫نوع‬ ‫ا‬ . ‫باشند‬ ‫متفاوت‬ ‫یکدیگر‬ ‫با‬ ‫ورودی‬
  • 8. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#7 ‫برای‬: ‫نویسیم‬ ‫می‬ ‫سازنده‬ ‫چندین‬ ‫خود‬ ‫کالس‬ public Kala() { TeFo = 0; } public Kala(string Name , double Kharid , double Forush) { this.Name = Name; this.Kharid = Kharid; this.Forush = Forush; TeFo = 0; } public Kala(string Name , double Kharid , double Forush , Int64 TeFo) { this.Name = Name; this.Kharid = Kharid; this.Forush = Forush; this.TeFo = TeFo; } ‫نوشتن‬ ‫برای‬Main‫هنگام‬ ‫به‬ ‫سپس‬ ‫و‬ ‫کنیم‬ ‫تعریف‬ ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫متغییری‬ ‫که‬ ‫است‬ ‫کافی‬ ، ‫ها‬ ‫سازنده‬ ‫از‬ ‫کدام‬ ‫هر‬ ‫فراخونی‬ ‫و‬new ‫سازنده‬ ، ‫کنیم‬ ‫می‬ ‫پاس‬ ‫سازنده‬ ‫به‬ ‫آرگومان‬ ‫نوعی‬ ‫چه‬ ‫از‬ ‫و‬ ‫تعداد‬ ‫چه‬ ‫اینکه‬ ‫به‬ ‫بسته‬ ، ‫بدهیم‬ ‫آن‬ ‫به‬ ‫را‬ ‫مناسب‬ ‫های‬ ‫آرگومان‬ ‫کردن‬ ‫فراخوا‬ ‫مناسب‬‫شود‬ ‫می‬ ‫نی‬: static void Main(string[] args) { Kala k1 = new Kala(); Kala k2 = new Kala("Golabi", 200, 3500); Kala k3 = new Kala("CheeToz Motoriiieee !", 325, 1500, 1000000); } ‫سازنده‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫شود‬ ‫می‬ ‫مشاهده‬ ‫که‬ ‫طور‬ ‫همان‬1،k1، ‫نموده‬ ‫ایجاد‬ ‫را‬k1‫فقط‬ ‫که‬ ‫است‬ ‫کاالیی‬TeFo‫برابر‬ ‫و‬ ‫مقداردهی‬ ‫آن‬ ‫ساز‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫؛‬ ‫شده‬ ‫صفر‬‫نده‬5،k2، ‫نموده‬ ‫ایجاد‬ ‫را‬k2‫تولید‬ ‫یا‬ ‫خرید‬ ‫قیمت‬ ، ‫گالبی‬ ‫نام‬ ‫با‬ ‫است‬ ‫کاالیی‬522‫قیمت‬ ‫و‬ ‫تومان‬ ‫فروش‬3222‫سازنده‬ ‫با‬ ‫همچنین‬ ‫؛‬ ‫صفر‬ ‫فروش‬ ‫تعداد‬ ‫و‬ ‫تومان‬3،k3‫که‬ ‫نموده‬ ‫ایجاد‬ ‫را‬k3‫و‬ ، ‫موتوری‬ ‫توز‬ ‫چی‬ ‫نام‬ ‫به‬ ‫است‬ ‫کاالیی‬ )‫تولید(خرید‬ ‫قیمت‬ ‫با‬352‫تومان‬‫فروش‬ ‫تعداد‬ ‫و‬1000000‫مشخص‬ ‫هم‬ ‫تورم‬ ‫و‬ ‫ها‬ ‫گرانی‬ ‫دلیل‬ ‫پس‬ ‫؛‬ ‫خرند‬ ‫می‬ ‫بیکار‬ ‫آدم‬ ‫مشت‬ ‫یه‬ ‫که‬ ‫شکایت‬ ‫توز‬ ‫چی‬ ‫دست‬ ‫از‬ ‫بروید‬ ‫توانید‬ ‫می‬ ‫راحتی‬ ‫همین‬ ‫به‬ ، ‫شد‬! ‫کنید‬ ‫خدمت‬ ‫خویش‬ ‫کشور‬ ‫به‬ ‫و‬ ‫کنید‬ ‫یک‬ ‫سازنده‬ ‫سازنده‬‫دو‬ ‫سازنده‬‫سه‬ ‫یک‬ ‫سازنده‬ ‫فراخوانی‬ ‫یک‬ ‫سازنده‬ ‫فراخوانی‬ ‫سه‬ ‫سازنده‬ ‫فراخوانی‬
  • 9. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#8 ‫خواند‬ ‫خواهید‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫در‬ ‫را‬ ‫سازنده‬ ‫تکمیلی‬ ‫مباحث‬ ‫سایر‬. this: this‫ح‬ ‫در‬ ‫که‬ ‫است‬ ‫ای‬ ‫شده‬ ‫رزرو‬ ‫کلمه‬‫کالسمان‬ ‫نوع‬ ‫از‬ ‫جاری‬ ‫شی‬ ‫به‬ ‫گفت‬ ‫باید‬ ‫کلی‬ ‫الت‬‫که‬‫آن‬ ‫در‬ ‫کدنویسی‬ ‫حال‬ ‫در‬ . ‫کند‬ ‫می‬ ‫اشاره‬ ، ‫هستیم‬ 1.: ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫جاری‬ ‫شی‬ ‫عنوان‬ ‫به‬ ‫از‬ ‫دیگری‬ ‫عضو‬ ‫یا‬ ‫فیلد‬ ‫با‬ ‫نام‬ ‫هم‬ ‫آنها‬ ‫ورودی‬ ‫های‬ ‫آرگومان‬ ‫که‬ ‫نویسیم‬ ‫می‬ ‫ایندکسر‬ ‫یا‬ ‫سازنده‬ ، ‫متد‬ ‫یک‬ ‫که‬ ‫وقت‬ ‫هر‬ ‫آن‬ ‫به‬ ، ‫باشد‬ ‫می‬ ‫کالسمان‬ ‫نوع‬‫سازنده،متد‬ ‫ورودی‬ ‫آرگومان‬ ‫به‬ ‫بلکه‬ ، ‫نداریم‬ ‫دسترسی‬ ‫دیگر‬ ‫کالسمان‬ ‫از‬ ‫عضو‬ ‫یا‬ ‫فیلد‬ ‫ایندکسر‬ ‫یا‬ ‫سازنده،متد‬ ‫ورودی‬ ‫آرگومان‬ ‫با‬ ‫نام‬ ‫هم‬ ‫که‬ ‫عنصری‬ ‫یا‬ ‫عضو‬ ‫به‬ ‫بتوان‬ ‫اینکه‬ ‫برای‬ ‫؛‬ ‫داریم‬ ‫دسترسی‬ ‫ایندکسر‬ ‫یا‬ ‫ابتدا‬ ‫داشت‬ ‫دسترسی‬ ، ‫است‬this.: ‫نوشته‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫عضو‬ ‫نام‬ ‫سپس‬ ‫و‬ class Kala { // ‫فیلدها‬ public string Name; public double Kharid; public double Forush; public Int64 TeFo; public Kala() { TeFo = 0; } public Kala(string Name , double Kharid , double Forush) { this.Name = Name; this.Kharid = Kharid; this.Forush = Forush; TeFo = 0; } public Kala(string Name , double Kharid , double Forush , Int64 TeFo) { this.Name = Name; this.Kharid = Kharid; this.Forush = Forush; this.TeFo = TeFo; } } ‫همان‬‫م‬ ‫که‬ ‫طور‬‫برای‬ ، ‫دارد‬ ‫وجود‬ ‫تداخل‬ ‫کالس‬ ‫فیلد‬ ‫نام‬ ‫و‬ ‫سازنده‬ ‫ورودی‬ ‫آرگومان‬ ‫بین‬ ‫که‬ ‫جاهایی‬ ، ‫شود‬ ‫می‬ ‫شاهده‬ ‫از‬ ‫کالس‬ ‫فیلد‬ ‫به‬ ‫دسترسی‬this. ‫است‬ ‫شده‬ ‫استفاده‬ 5.‫برای‬)‫گرفت‬ ‫خواهد‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫بعدا‬ ‫(ایندکسر‬ ‫ایندکسر‬ ‫فراخوانی‬ ‫فراخوانی‬ ‫را‬ ‫کالس‬ ‫خود‬ ‫ایندکسر‬ ، ‫کالس‬ ‫داخل‬ ‫توان‬ ‫می‬: ً ‫مثال‬ ‫؛‬ ‫نمود‬ this[i] = new Kala(); Kala f = this[i]; 3.‫سازنده‬ ‫فراخوانی‬‫دیگر‬ ‫سازنده‬ ‫یک‬ ‫توسط‬ ‫کالس‬)‫شود‬ ‫می‬ ‫گفته‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫(در‬ 4.‫شده‬ ‫رزرو‬ ‫ازکلمه‬ ‫باید‬ ‫ایندکسر‬ ‫نوشتن‬ ‫برای‬ : ‫ایندکسر‬ ‫نوشتن‬this‫نمود‬ ‫استفاده‬.
  • 10. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#9 2.‫که‬ ‫کالسی‬ ‫نوع‬ ‫از‬ ‫شی‬ ‫یک‬ ‫که‬ ، ‫متد‬ ‫یک‬ ‫به‬ ‫جاری‬ ‫شی‬ ‫کردن‬ ‫پاس‬‫آن‬ ‫نوشتن‬ ‫حال‬ ‫در‬‫هستیم‬‫گیرد‬ ‫می‬: public void F1(Kala t) {/* Code */} public void F2() { F1(this); } ( ‫پراپرتی‬Property: ) : ‫سوال‬‫جای‬ ‫به‬ ‫و‬ ‫بخرید‬ ‫را‬ ‫کاال‬ ‫یک‬ ‫بروید‬ ‫مثال‬ ‫اینکه‬ ( ‫باشد‬ ‫منفی‬ ‫کاال‬ ‫یک‬ ‫فروش‬ ‫قیمت‬ ‫مثال‬ ‫که‬ ‫درست‬ ‫این‬ ‫شما‬ ‫نظر‬ ‫به‬ ‫آیا‬ ‫بپردازید‬ ‫ای‬ ‫هزینه‬ ‫اینکه‬. ‫نمیشه‬ ‫نه‬ ‫خب‬ ‫ولی‬ ، ‫میشه‬ ‫چی‬ ‫بشه‬ ‫اگه‬ ‫که‬ ‫است‬ ‫این‬ ‫داریم‬ ‫که‬ ‫جوابی‬ ‫تنها‬ ‫؟؟‬ ) ‫بدهند‬ ‫هم‬ ‫پول‬ ‫شما‬ ‫به‬ ‫توان‬ ‫می‬ ‫چگونه‬ ‫و‬ ‫چطور‬ ‫که‬ ‫آید‬ ‫می‬ ‫پیش‬ ‫سوال‬ ‫این‬ ‫حال‬‫؟‬ ‫نمود‬ ‫کنترل‬ ‫را‬ ‫کالس‬ ‫فیلدهای‬ ‫کاربر‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫و‬ ‫سرکاربر‬ ‫پشت‬ ‫بشینید‬ ‫اید‬ ‫نوشته‬ ‫را‬ ‫برنامه‬ ‫که‬ ‫شما‬ ‫که‬ ‫است‬ ‫این‬ ‫جواب‬ ‫تنها‬‫نادرس‬ ‫داده‬، ‫کرد‬ ‫وارد‬ ‫تی‬ ! ‫نیست‬ ‫شما‬ ‫زحمت‬ ‫همه‬ ‫این‬ ‫به‬ ‫نیازی‬ ‫بابا‬ ‫نه‬ ! ‫کنید‬ ‫مهمونش‬ ‫گردنی‬ ‫پشت‬ ‫یه‬ ‫از‬ ‫استفاده‬ ، ) !‫بگیرید‬ ‫را‬ ‫آنها‬ ‫جلوی‬ ‫باید‬ ‫و‬ ‫شود‬ ‫می‬ ‫تراوش‬ ‫ذهنتان‬ ‫از‬ ‫که‬ ‫حلی‬ ‫راه‬ ‫هزاران‬ ‫از‬ ‫(جدا‬ ‫دارد‬ ‫وجود‬ ‫که‬ ‫حلی‬ ‫راه‬ Property‫را‬ ‫خود‬ ‫فیلد‬ ‫که‬ ، ‫باشد‬ ‫می‬private‫ب‬ ‫و‬ ‫نموده‬‫داخل‬ ‫صورت‬ ‫دین‬Main‫دسترسی‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫از‬ ‫خارج‬ ‫هرجایی‬ ‫یا‬ ‫عنوان‬ ‫به‬ ‫واسط‬ ‫یک‬ ‫و‬ ، ‫نباشد‬Property‫که‬ ‫کنیم‬ ‫می‬ ‫تعریف‬public( ‫آن‬ ‫مقدار‬ ‫خواندن‬ ‫موقع‬ ‫و‬ ‫باشد‬get‫را‬ ‫فیلد‬ ‫مقدار‬ ‫همان‬ ) ‫به‬ ‫دادن‬ ‫مقدار‬ ‫موقع‬ ‫و‬ ‫برگرداند‬Property‫را‬ ‫آن‬ ‫بود‬ ‫معتبر‬ ‫جدید‬ ‫مقدار‬ ‫که‬ ‫صورتی‬ ‫در‬‫فیلد‬ ‫به‬: ً ‫مثال‬ ، ‫شود‬ ‫ذخیره‬ ‫تا‬ ‫داده‬ ‫نسبت‬ ‫یک‬ ‫آن‬ ‫ابتدای‬ ‫به‬ ‫که‬ ‫نام‬ ‫همان‬ ‫برابر‬ ‫را‬ ‫فیلد‬ ‫نام‬ ‫و‬ ‫داده‬ ‫نسبت‬ ‫پراپرتی‬ ‫به‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫نام‬ ‫(معموال‬_‫اس‬ ‫شده‬ ‫اضافه‬)‫ت‬ ‫نکات‬: 1.‫پراپرتی‬‫قسمت‬ ‫دارای‬ ‫باید‬get‫یا‬set‫باشد‬ ‫دو‬ ‫هر‬ ‫یا‬. 5.‫اگر‬‫قسمت‬ ، ‫بخوانیم‬ ‫را‬ ‫پراپرتی‬ ‫مقدار‬get‫قسمت‬ ‫بدهیم‬ ‫مقدار‬ ‫آن‬ ‫به‬ ‫اگر‬ ‫و‬set. ‫شود‬ ‫می‬ ‫فراخوانی‬ 3.‫پراپرتی‬‫بدون‬()‫قسمت‬ ‫در‬ ‫فقط‬ ‫و‬ ، ‫ندارد‬ ‫ورودی‬ ‫آرگومان‬ ‫هیچ‬ ‫و‬ ‫است‬set‫شده‬ ‫رزرو‬ ‫ازکلمه‬ ‫توان‬ ‫می‬value‫استفاده‬ . ‫دهیم‬ ‫می‬ ‫نسبت‬ ‫پراپرتی‬ ‫به‬ ‫داریم‬ ‫که‬ ‫است‬ ‫مقداری‬ ‫حاوی‬ ‫که‬ ‫نمود‬ 4.‫وقتی‬‫که‬‫نوع‬ ‫از‬ ‫مثال‬ ‫پراپرتی‬double‫تعریف‬‫قسمت‬ ‫در‬ ، ‫شود‬ ‫می‬get‫که‬ ‫مقداری‬return‫باید‬ ‫شود‬ ‫می‬double‫باشد‬ ‫در‬ ‫که‬ ‫مقداری‬ ‫همچنین‬ ‫و‬value‫نوع‬ ‫از‬ ‫داد‬ ‫قرار‬double( ‫است‬value‫نوع‬ ‫از‬double. )‫بوده‬ 2.‫در‬‫قسمت‬get‫حتما‬‫باید‬‫یک‬return. ‫باشد‬ ‫خروجی‬ ‫مقدار‬ ‫دارای‬ ‫همیشه‬ ‫و‬ ‫شود‬ ‫اجرا‬ static void Main() { Kala k1 = new Kala(); k1.Forush = 1500; // Call Forush Property :: Set :: vale = 1500 double f = k1.Forush; // Call Forush Property :: get } double _Forush; public double Forush { get { return _Forush; } set { if (value > 0) _Forush = value; } } private double _Forush; public double Forush { get { return _Forush; } set { if (value > 0) _Forush = value; } }
  • 11. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#11 6.ً‫ال‬‫معمو‬‫قسمت‬ ‫در‬get‫و‬set‫با‬‫قسمت‬ ‫در‬ ‫هم‬ ‫فوق‬ ‫مثال‬ ‫در‬ ً‫ال‬‫مث‬ ، ‫کنیم‬ ‫می‬ ‫کار‬ ‫یکسان‬ ‫و‬ ‫خاص‬ ‫فیلد‬ ‫یک‬get‫در‬ ‫هم‬ ‫و‬ ‫قسمت‬set‫فیلد‬ ‫با‬_Forush‫دلخواهی‬ ‫کد‬ ‫هر‬ ‫توان‬ ‫می‬ ‫و‬ ‫ندارد‬ ‫الزامی‬ ‫هیچ‬ ‫ولی‬ ‫؛‬ ‫کنیم‬ ‫می‬ ‫کار‬‫نوشت‬ ‫آن‬ ‫در‬‫هر‬ ‫با‬ ‫و‬ ( ‫فیلدی‬، ‫صفر‬‫نمود‬ ‫کار‬ )‫فیلد‬ ‫چند‬ ‫یا‬ ‫یک‬‫و‬‫قسمت‬ ‫در‬ ً‫ال‬‫مث‬ ‫که‬ ‫نمود‬ ‫کار‬ ‫ثبات‬ ‫مقادیر‬ ‫با‬ ‫کال‬ ‫یا‬get‫یک‬ ‫همیشه‬ ‫پراپرتی‬ ‫ثابت‬ ‫مقدار‬. ‫برگرداند‬ ‫را‬ 7.ً‫ال‬‫معمو‬‫یک‬ ‫کالسمان‬ ‫از‬ ‫ای‬ ‫ویژگی‬ ‫و‬ ‫مشخص‬ ‫هر‬ ‫برای‬ً‫ال‬‫مث‬ ، ‫نویسیم‬ ‫می‬ ‫پراپرتی‬( ‫پربودن‬ ‫برای‬ ‫پشته‬ ‫و‬ ‫صف‬ ‫در‬IsFull، ) (‫بودن‬ ‫خالی‬IsEnpty( ‫هستند‬ ‫صف‬ ‫داخل‬ ‫که‬ ‫عناصری‬ ‫تعداد‬ ، )Count(‫صف‬ ‫طول‬ ‫و‬ )Length‫و‬ ‫ها‬ ‫مشخصه‬ ‫جز‬ ‫که‬ ) . ‫نویسیم‬ ‫می‬ ‫پراپرتی‬ ، ‫است‬ ‫کالسمان‬ ‫های‬ ‫ویژگی‬ ‫ایندکسر‬: ‫ایندکسر‬‫است‬ ‫پراپرتی‬ ‫یک‬‫آن‬ ‫نام‬ ‫که‬ ،this‫داخل‬ ‫که‬ ‫باشد‬ ‫می‬ ‫نیز‬ ‫ورودی‬ ‫آرگومان‬ ‫دارای‬ ‫و‬ ‫بوده‬[]‫شوند‬ ‫می‬ ‫تعریف‬. ‫فراخوانی‬: ‫ایندکسر‬‫ایندکسر‬ ‫فراخوانی‬ ‫برای‬‫ایندکسر‬ ‫اگر‬ ،static‫باشد‬‫ابتدا‬ ‫باید‬‫نا‬‫کالس‬ ‫م‬‫آن‬ ‫جلوی‬ ‫سپس‬ ‫و‬[] ‫داخل‬ ‫و‬ ‫نوشته‬ ‫را‬[]‫ورودی‬ ‫های‬ ‫آرگومان‬‫نوشته‬ ‫را‬‫ا‬ ‫و‬‫گر‬non-static‫باشد‬‫از‬ ‫کالس‬ ‫نام‬ ‫بجای‬ ‫باید‬‫شی‬ ‫نام‬‫کالسمان‬ ‫نوع‬ ‫از‬ ‫ای‬ . ) ‫باشد‬ ‫می‬ ‫کالسمان‬ ‫نوع‬ ‫از‬ ‫که‬ ‫متغییری‬ ‫(نام‬ ‫نموده‬ ‫استفاده‬ ً‫ال‬‫معمو‬‫در‬ ‫آرایه‬ ‫آن‬ ‫عناصر‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ، ‫داریم‬ ‫آرایه‬ ‫کالسمان‬ ‫در‬ ‫که‬ ‫وقتی‬‫نویسیم‬ ‫می‬ ‫ایدکسر‬ ‫کالس‬ ‫از‬ ‫خارج‬. ‫از‬‫آن‬ ‫نام‬ ‫و‬ ‫است‬ ‫ورودی‬ ‫آرگومان‬ ‫دارای‬ ‫ایندکسر‬ ‫که‬ ‫آنجا‬this‫برای‬ ، ‫است‬‫نوع‬ ‫یا‬ ‫تعداد‬ ‫در‬ ‫باید‬ ‫ایندکسر‬ ‫چند‬ ‫نوشتن‬ ‫و‬ ‫های‬ ‫آرگومان‬‫باشند‬ ‫داشته‬ ‫فرق‬ ‫یکدگیر‬ ‫با‬ ‫رودی‬‫کالس‬ ‫برای‬ ‫مثال‬ ‫؛‬Kala: ‫نوشت‬ ‫توان‬ ‫می‬ public double this[bool Kharid] { get { if (Kharid)//Kharid = true return this.Kharid; return Forush;//Kharid = fasle } set { if (Kharid)//Kharid = true this.Kharid = value; else//Kharid = fasle Forush = value; } } ‫این‬‫ورودی‬ ‫آرگومان‬ ‫دارای‬ ‫ایندکسر‬‫بنام‬ ‫ای‬Kharid‫فیلد‬ ‫با‬ : ‫(توجه‬ ‫باشد‬ ‫می‬‫نام‬ ‫به‬ ‫که‬ ‫ی‬Kharid‫د‬‫می‬ ‫پیش‬ ‫تداخل‬ ‫اریم‬ ‫آید‬،‫بنویسیم‬ ‫جا‬ ‫هر‬ ‫پس‬Kharid‫هرجا‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫استفاده‬ ‫ایندکسر‬ ‫ورودی‬ ‫آرگومان‬ ‫از‬ ‫داریم‬‫بنویسیم‬this.Kharid‫با‬ ‫داریم‬ ‫آرگومان‬ ‫این‬ ‫مقدار‬ ‫اگر‬ ، )‫کنیم‬ ‫می‬ ‫کار‬ ‫کالس‬ ‫فیلد‬true‫فیلد‬ ‫مقدار‬ ، ‫باشد‬Kharid‫واگر‬ ‫گرداند‬ ‫برمی‬ ‫یا‬ ‫و‬ ‫کند‬ ‫می‬ ‫دهی‬ ‫مقدار‬ ‫را‬ ‫آرگومان‬ ‫این‬ ‫مقدار‬fasle‫فیلد‬ ‫مقدار‬ ‫باشد‬Forush‫یا‬ ‫گرداند‬ ‫می‬ ‫بر‬ ‫را‬‫آن‬ ‫به‬‫کند‬ ‫می‬ ‫دهی‬ ‫مقدار‬‫ّا‬‫م‬‫وا‬ ،Main: static void Main() { Kala k1 = new Kala("Adams", 12, 250,465); k1[true] = 15;//set k1.Kharid : 15 double Fo = k1[false];//get k1.Forush }
  • 12. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#11 ‫ایندکسر‬‫زیر‬‫و‬ ‫کند‬ ‫می‬ ‫چکار‬ ‫که‬ ‫کنید‬ ‫بررسی‬ ‫را‬Main: ‫بنویسید‬ ‫نیز‬ ‫را‬ ‫آن‬ public double this[Int64 Tedad] { get { if (Tedad <= 0) return (Forush - Kharid) * TeFo; return (Forush - Kharid) * Tedad; } } ‫و‬: ‫آن‬ ‫ایندکسر‬ ‫و‬ ‫فروشگاه‬ ‫کالس‬ ‫اما‬ class Shop { Kala[] Data; int _Count; public Shop(int Size) { Data = new Kala[Size]; _Count = 0; } public Kala this[int i] { get { if (i < 0 || i >= _Count) throw new Exception("Bache Dast Nazan !"); return Data[i]; } set { if (i < 0 || i >= _Count) throw new Exception("Bache Dast Nazan !"); Data[i] = value; } } } ‫و‬‫حاال‬‫آقا/خانم‬ ‫هم‬ ‫این‬ ‫و‬ ‫شما‬ ‫این‬Main: static void Main() { int Kheyli = 100000; Shop BaghalieSareKouche = new Shop(Kheyli); int BastaniIndex = 5; double YeGheroun = 150; double Geruoon = 1500; Kala k1 = new Kala("Bastani", YeGheroun, Geruoon); BaghalieSareKouche[BastaniIndex] = k1; }
  • 13. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#12 ‫متد‬: ‫در‬‫باالی‬ ‫را‬ ‫متدها‬ ، ‫نوشتیم‬ ‫متد‬ ‫که‬ ‫قبل‬ ‫های‬ ‫مثال‬Main‫نوشته‬، ‫بودیم‬‫متد‬ ‫اگر‬ ‫که‬ ، ‫نوشت‬ ‫متد‬ ‫نیز‬ ‫کالس‬ ‫خود‬ ‫در‬ ‫توان‬ ‫می‬ static‫اگر‬ ‫و‬ ، ‫داریم‬ ‫دسترسی‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫نام‬ ‫خود‬ ‫طریق‬ ‫از‬ ‫باشد‬non-static‫کال‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫طریق‬ ‫از‬ ‫باشد‬‫آن‬ ‫به‬ ‫سمان‬ ‫داشت‬ ‫خواهیم‬ ‫دسترسی‬: class Kala { public string Name; public double Kharid; public double Forush; public Int64 TeFo; public Kala(string Name, double Kharid, double Forush, Int64 TeFo) { this.Name = Name; this.Kharid = Kharid; this.Forush = Forush; this.TeFo = TeFo; } public static double Soud(Kala k) { return (k.Forush - k.Kharid) * k.TeFo; } } static void Main() { Kala k1 = new Kala("Danet", 120, 100, 250); double s = Kala.Soud(k1); } class Kala { public string Name; public double Kharid; public double Forush; public Int64 TeFo; public Kala(string Name, double Kharid, double Forush, Int64 TeFo) { this.Name = Name; this.Kharid = Kharid; this.Forush = Forush; this.TeFo = TeFo; } public double Soud() { return (Forush - Kharid) * TeFo; } } static void Main() { Kala k1 = new Kala("Danet", 120, 100, 250); double s = k1.Soud(); } static‫و‬non-static:‫ب‬‫تر‬ ‫دقیق‬ ‫ررسی‬‫متد‬‫ایندکسر‬ ، ‫پراپرتی‬ ،‫و‬‫سازنده‬) ‫است‬ ‫شده‬ ‫بررسی‬ ‫قبال‬ ‫(فیلد‬: ‫این‬ ‫اگر‬‫اعضا‬static‫باشند‬. ‫داریم‬ ‫دسترسی‬ ‫ها‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫نام‬ ‫طریق‬ ‫،از‬ ‫اگر‬‫اعضا‬ ‫این‬non-static‫باش‬‫ن‬. ‫داریم‬ ‫دسترسی‬ ‫ها‬ ‫آن‬ ‫به‬ ‫کالس‬ ‫نوع‬ ‫از‬ ‫ای‬ ‫شی‬ ‫طریق‬ ‫از‬ ، ‫د‬ ‫اگر‬‫اعضا‬ ‫این‬static‫فق‬ ‫و‬ ‫فقط‬ ‫در‬ ، ‫باشند‬‫اعضای‬ ‫به‬ ‫ط‬static. ‫داشت‬ ‫خواهیم‬ ‫دسترسی‬ ‫اگر‬‫اعضا‬ ‫این‬static‫باشند‬‫به‬ ،this‫نخو‬ ‫دسترسی‬ ، ‫است‬ ‫جاری‬ ‫شی‬ ‫به‬ ‫مربوط‬ ‫که‬. ‫داشت‬ ‫اهیم‬ ‫اگر‬‫اعضا‬ ‫این‬non-static‫و‬ ‫اعضا‬ ‫به‬ ‫هم‬ ، ‫باشند‬‫عناصر‬static‫هم‬ ‫و‬‫عناصر‬ ‫و‬ ‫اعضا‬ ‫به‬non-static‫جمله‬ ‫(من‬this) . ‫داشت‬ ‫خواهیم‬ ‫دسترسی‬ ‫اگر‬‫که‬ ‫باشیم‬ ‫داشته‬ ‫عضوی‬static‫باشد‬)‫سازنده‬ ‫و‬ ‫ایندکسر‬ ، ‫(متد‬‫بصورت‬ ‫را‬ ‫آن‬ ‫بخواهیم‬ ‫و‬ ،non-static، ‫بنویسیم‬ ، ‫است‬ ‫شده‬ ‫حذف‬ ‫که‬ ‫آرگومان‬ ‫آن‬ ‫اسم‬ ‫جای‬ ‫به‬ ‫عضو‬ ‫بدنه‬ ‫داخل‬ ‫و‬ ، ‫نموده‬ ‫حذف‬ ‫را‬ ‫آن‬ ‫ورودی‬ ‫های‬ ‫آرگومان‬ ‫از‬ ‫یکی‬ ‫باید‬‫از‬this ‫توان‬ ‫می‬ ‫باشد‬ ‫نداشته‬ ‫وجود‬ ‫تداخلی‬ ‫هیچ‬ ‫که‬ ‫صورتی‬ ‫در‬ ‫و‬ ‫نموده‬ ‫استفاده‬this.‫را‬. ‫ننوشت‬ ‫نیز‬ ‫اگر‬‫عضوی‬non-static‫بصورت‬ ‫را‬ ‫آن‬ ‫بخواهیم‬ ‫و‬ ‫باشد‬static‫آرگومان‬ ‫به‬ ‫کالس‬ ‫خود‬ ‫نوع‬ ‫از‬ ‫آرگومانی‬ ‫باید‬ ، ‫بنویسیم‬ ‫که‬ ‫هرجا‬ ‫و‬ ‫نموده‬ ‫اضافه‬ ‫آن‬ ‫های‬this‫اعضای‬ ‫از‬ ‫داریم‬ ‫که‬ ‫هرجا‬ ‫و‬ ‫بنویسیم‬ ‫را‬ ‫شده‬ ‫اضافه‬ ‫آرگومان‬ ‫نام‬ ‫داریم‬non-static‫کالس‬ ‫باید‬ ، ‫کنیم‬ ‫می‬ ‫استفاده‬. ‫نمود‬ ‫اضافه‬ ‫آنها‬ ‫اسم‬ ‫از‬ ‫قبل‬ ) ).(‫دانت‬ ‫همراه‬ ‫(به‬ ‫شده‬ ‫اضافه‬ ‫آرگومان‬ ‫نام‬
  • 14. ‫بخش‬‫هفتم‬‫نویسی‬ ‫برنامه‬C#13 ‫خود‬‫بصورت‬ ‫تواند‬ ‫می‬ ‫نیز‬ ‫کالس‬static.. ‫و‬. ‫خواند‬ ‫خواهید‬ ‫گرا‬ ‫شی‬ ‫درس‬ ‫در‬ ‫که‬ ‫شود‬ ‫تعریف‬ ‫نیز‬ . ‫مثال‬‫استاد‬ ‫که‬ ‫را‬ ‫ها‬ ‫صف‬‫اند‬ ‫گفته‬‫همچنین‬ ‫و‬ ‫کنید‬ ‫مرور‬ ‫را‬‫دفترچه‬ ‫مثال‬‫تلفنی‬‫کالس‬ ‫سر‬ ‫که‬ ‫را‬‫ب‬ ‫دقت‬ ‫با‬ ‫نیز‬ ‫را‬ ‫ام‬ ‫نوشته‬‫خوانید‬. ‫مباحث‬‫ترم‬ ‫پایان‬ ‫اصلی‬، ‫بود‬ ‫ها‬ ‫همین‬‫اشکاالت‬ ‫و‬ ‫خوانده‬ ‫را‬ ‫مطالب‬ ‫دقت‬ ‫با‬ ‫که‬ ‫خواهشمندم‬‫میان‬ ‫در‬ ‫خود‬ ‫سرگروه‬ ‫با‬ ‫ابتدا‬ ‫را‬ ‫خود‬ ‫به‬ ‫دیگری‬ ‫اشکال‬ ‫و‬ ‫سوال‬ ‫هر‬ ‫داشتن‬ ‫صورت‬ ‫در‬ ‫و‬ ‫گذاشته‬. ‫دهید‬ ‫اطالع‬ ‫بنده‬ ‫لطفا‬‫در‬‫در‬ ‫که‬ ‫صورتی‬، ‫دارید‬ ‫آن‬ ‫بهبود‬ ‫جهت‬ ‫دیگری‬ ‫پیشنهاد‬ ‫هر‬ ‫یا‬ ‫و‬ ‫است‬ ‫نشده‬ ‫گفته‬ ‫که‬ ‫مطلبی‬ ‫یا‬ ‫و‬ ‫دیدید‬ ‫اشکالی‬ ‫فایل‬ ‫این‬‫ب‬‫ه‬ . ‫دهید‬ ‫اطالع‬ ‫بنده‬ ‫موفق‬‫باشید‬ ‫موید‬ ‫و‬ ‫ّد‬‫م‬‫مح‬‫امجدی‬ ‫امین‬