صفحه 1:
در این فصل بمعرفی زبان 00607۳.#) ا#سح() می پردازيم. ابتدا
انواع داده استاندارد این زبان و کاربرد آنها شرح داده می شود.
سپس به دستورات این زبان می پردازیم و در قالب مثالهایی آنها را
بررسی خواهیم نمود.
فصل دوم - آشنایی با زبان C#.NET
صفحه 2:
& انواع داده ها
۷ هنكاميكه مى خواهيد يك متغير را تعريف كنيد بايد 0.08/١ از اينكه جه مقاديرى مى خواهيد در
آن ذخیره کنید مطلع باشد. اینکار با مشخص كردن نوع داده این متغیر انجام می شود.
1 داده های عددی:
نوع داده شرح
byte, short, tot, boy | اعداد صحيح بترتیب با طول ۰۱ ۲ ؟ و ۸ بایت
اعداد صحيح بدون علامت (بزرگتر از ۰) بترتیب با طول ۰۱ ۲
et doc ]و پیت
stp, double | اعداد اعشاری ممیز شناور بترتیب با طول ۴و ۸ بایت
امس | عدد اعشاری با ممیز ثابت با ۱۶ بایت
فصل دوم - آشنایی با زبان 6 #
صفحه 3:
داده های عددی
: دقت کنید که زبان 6 # نسبت به کوچکی و بزرگی حروف حساس می باشد برای نمونه 130 و
1220 با هم متفاوتند.
1 الم )|
تعریف متغیر صحیح و مقدار دهی به آن: raf,
cucvber, okt وا
۱2 ;12140
برخی از عملگرهای ریاضی:
عملگر شرح
لا عملگر ضرب. تقسیم اعشاری و تفسیم صحیح, باقیمانده تقسیم
unary) -+) مثبت و متفی کننده
binary) -.) عملگر جمع و . عملگر تفری
فصل دوم - آشنایی با زبان 6 #
صفحه 4:
داده های عددی
+ رد رده
0 عملكرهاى رياضى بهمراه نسبت دهى:
براى بررسى بيشتر به برنامه 112167611112613 مراجعه كنيد
اعداد اعشارى:
بررسی بیشتر به برنامه ۳1010۳۲۳۷۲۵1 مراجعه
فصل دوم - آشنایی با زبان 6 #
صفحه 5:
رشته ها (8)
| - رشته ها نوع داده پر کاربرد دیگر هستند. یک رشته دنباله ای از کاراکترهاست که بسرای ذخسیره
سازی اطلاعاتی مانند نام. آدرس و ... استفاده می شود. کاربرد دیگر رشسسته ها دریافت اطلاعات
ورودی از کاربر و نمایش خروجی به او می باشد.
- کاراکترهای تشکیل دهنده یک رشته پونیکد(1210006[]) است و اندازه هر کدام دو بایت می
باشد. بنابراین آنها علاوه بر حروف انگلیسی و سایر کاراکترهای اسکی برای نمایش حروف سایر
زبانهای طبیعی مانند عربی و فارسی و تعداد زیادی علایم دیگر استفاده می شوند.
اس
- تعریف رشته و مقدار دهی آن ۱ ۱
۳
عم بو"
علب
or = “Lele,
word!"
فصل دوم - آشنایی با زبان 6 #
صفحه 6:
1 محدودده رشته ها با استفاده از کاراکترهای " و " مشخص می شود. برای مثال در دستور
("صمدظا) مجان" ,ل + " ...اوج اف ()) سس موه
و "طداهة) بنرا" رشته هستند.
دو عبارت "لصتا وصتصاصول 00
اكر بخواهيم خود کاراکتر "را در یک رشسته بياوريم بايد قبسل از این کاراکتر از كساراكتر ١
استفاده کنیم. برای مثال
|| علسجی اه اه لس Ph
|| سل oP sO equate "Bi"
od =" ۷ ديع
- ص مع
فصل دوم - آشنایی با زبان © #
صفحه 7:
۹ عملیات برروی رشته ها
آیک نوع داده یا کلاس در زبان شی گرای :) #_علاوه بر داده دارای متدها يا توابعی است که بر
روى اين داده ها عمل مى كنند. اين متدها امکان پردازش داده ها را فراهم می کنند. برای نمونه
یک رشته حاوی دنباله ای از کاراکترهاست و علاوه بر آن دارای توابعی مانند تعیین
جستجوی یک عبارت در رشته و ... است. برای دستیابی به ویژگیها و متدها یک یک نوع داده از
عملگر نقطه استفاده می شود.
BE عملگر :|]برای د به کاراکترهای تشکیل دهنده یک رشته استفاده می شود. این عملگر
تنها خواندنی است. دقت کنید که اولین اندیس, با شماره صفر مشخص می شود
orks = "bebo";
chor ok = of]; ide oP obs ب مج
فصل دوم - آشنایی با زبان 6 #
صفحه 8:
& عملیات برروی رشته ها
Jack 1 ادغام: ادغام دو رشته با استفاده از عملگ + انجام می شود. ببرای مثال به قطبعه کد زیر توجه کنید
siricry volves ۲ و۱5
sir + si; [luce of revut eqs "Hello, world!" = لیر
نکته: یک مقدار عددی را نیز می توان با یک رشته ادغام کرد دراینحالت ابتدا مقدار عددی تبدیل به
رشته می شود و سپس با رشته ی مورد نظر ادغام می گردد. برای نمونه به قطعه کد زیر توجه کنید.
Set the value)
inti = 26
"Dhe ue oP ie: "+4, //> "The value of i is:26"
فصل دوم - آشنایی با زبان 6 #
صفحه 9:
عملیات برروی رشته ها
#انعبین طول رشته: منظور از طول رشته تعداد کاراکترهای تشکیل دهنده آن است. هر رشته دارای
ویژگی به نام 1.0720110 است که طول آن رشته را بر می گرداند.
ی مج با بط
"سامرلا" 2 عاد pire
۱2 تساه < ۱
#ازیر رشته: یکی دیگر از عملیات پرکاربرد برروی رشته هاست که برای تعیین بخشی از آن رشسته
که از مکان مشخصی شروع می شود. استفاده می شود. این عمل با استفاده از متد 5۳511760
انجام می شود. این متد دو پارامتر دارد. اولین پارامتر نشاندهنده مکان شروع زیسر رشسته اسست و
پارامتر دوم طول زیر رشته را مشخص می کند.
فصل دوم - آشنایی با زبان 6 #
صفحه 10:
عملیات شته ها
بات برروی ر |
يد يود
۱ با مت مسا [Be the
رت > و
وه ما با روطلمت0/|
Orson Orn. Shrw(s.Gubsiry(D, 9), "Girices");
NQisploy the widde three characters
Desene Ore Shows. Grboirrn(S, 9), "Grinp");
NO splay the host three choruters
Deseae Orn. Shows. Gubsiriay(s. Leas - 9), "Giree");
خروجى برنامه براى رشته Cranberry:
Cra nbe ny
فصل دوم - آشنایی با زبان 6 #
صفحه 11:
& عملیات برروی رشته ها
در رشته:
برای جستجوی یک کلمه یا متن در یک رشته می توانید از متد 112062660 استفاده کنید. این متد کلمه با متن
ورودی را در رشته جستجو کرده و اولین موقعیت شروع کلمه را در رشته برمی گرداند. در صورتیکه کلمه مورد
نظر در رشته پیدا نشود مقدار,خروجی این متد برایر با -۱ امسر o> Wie ier
Dewecne Bon (Show(s.‘ledexOR("Po
00
نکته: عملیات متنوع دیگری نیز بر روی رشته ها انجام مى شود. براى أكاهى از آنها مى توانيد از راهنماى
سیستم کمک بگیرید.
فصل دوم - آشنایی با زبان 6 #
صفحه 12:
نوع داده منطقی اما
داده های منطقی تنها می توانند یکی از دو مقدار ۳86(صحیح) یا ۳0156 (نادرست) را داشته باشند و
پیشتر بمنظور تصمیم گیری استفاده می شوند. برای نمونه نتيجه مقایسه برابری مقدار دو متفیر صحیح ۵و
یک داده منطقی است که یا درست (1۳116) است یا غلط (۳166)
تبدیل داده ها
Las cly ME انواع داده به يكديكر مى توانيد از كلاس 62601061 استفاده کنید. فرض کنید * یک رشته و «
یک متغیر 601101 باشد.
تبدیل <به مقدار صحیح اابصع < ( 99 بسمون
تبدیل <به مقدار اعشاری |0۵ < (م)عللهبسمون
تبدیل عدد » به مقدار رشته ای 8۳۱ > (مپت سوم
فصل دوم - آشنايى با زبان © #
صفحه 13:
& دستورات شرطی
BE 0 عبارات شرطی مانند "اگر هوا خوب باشد بعدازظهر به پارک می رویم " در مکالمات ما بدفعات استفاده می
شوند. در برنامه نويسى نيز مى توان با دستورات شرطى روند اجراى برنامه را با توجه به شرايط كنترل كرد. بسراى
اين منظور دستور 1 به شكل زير بکار می رود:
#امعناى دستور اين است كه اكر شرط برقرار بود دستورات١ را اجرا كن در غيراينصورت دستورات7
اجرا شوند. برای بیان شرط مورد نظر اغلب از عملگر های مقایسه ای (>» >!) استفاده
می شود. حاصل شرط یک مقدار 1۳116 یا 10156 است. عبارات شرطی را می توان توسط عملگرهای
منطقی (66, ||) باهم ترکیب عطفی یا فصلی کرد.
فصل دوم - آشنایی با زبان 6 # 2
صفحه 14:
& دستورات شرطی
ne 3 60 > و
nae i 0 2 ۰ باشد آنگاه Poe > 06 <ه
د رو > (a< G@) 8& (a
4S) > re <م || (90 >ع)
baa
(0 اع
:0 19 < ذاه
ساك نا سق
در صورتیکه بخواهیم بیش از یک شرط را چک کنیم می توانیم از else if
استفاده کنیم >
(60
:0+ ماع وا
(00 <م) سا
( *9 ۲2
eke b=b—(;
1۳ )
فصل دوم - آشنایی با زبان 64۱127
صفحه 15:
دستورات شرطی
ات 1 را بصورت تودرتو نيز
أمى توان نوشت براى نمونه
< اسان مه
9
# برای مقایسه رشته ها می توانید از متد ۳۳۳۳() مربوط به نوع داده 2۸1 استفاده کنید. نتیجه مقایسه
دو رشته ۰ و ط با استفاده از اين متد در زیر آمده است:
=O ۰
(طبد )س0 سود
ط< مم 00>
<O Pa<b
نکته: اگر بخواهیم دو رشته ۵و " را بدون توجه به کوچکی و بزرگی حروف با هم مقایسه کنیم کافیست مقدار
پارامتر سوم متد 010۳76) را برابر پا 7116 قرار دهیم ( string.Compare(a,b, true €
فصل دوم - آشنایی با زبان 6 #
صفحه 16:
4 دستور اند
ی ليد به ازای مقادیر مختلف یک متیر کارهای متفاوتی را انجام دهي لاس و
امه جایگزین مناسبتری برای دستور نذ است. برای مثال دستور زیر را در نظر بگیرید
AP (astm Deve == "Onxn’)
(do secrets)
phe P (astxverDawe == "Ctephaue")
(do secrecy)
Cuby") " عد ووو( ممصم ) ١ دجام
اس (do
che P (nstrwerDawe == "Betty")
(lo تسه
she (do sxvehin)
فصل دوم - آشنایی با زبان 64۱127
صفحه 17:
دستور ارو
0 امعادل این دستور را بصورت خواناتر با استفاده از 81۷1010 می توان بصورت زیر پیاده سازی کرد.
(صس صصص )انايد
vase "Bryant:
(do soxpethicns); beck;
تست ات سا
]
ات سا
break; :مس ط)
veer "Det":
(do ); break;
تالح
(do sexpethicns); breech;
برای آشنایی بیشتر با این دستور برنامه 1261100 ۹96166" را بررسی کنید.
فصل دوم - آشنایی با زبان 64۱127
{
صفحه 18:
4 لقه»های تکرار
alle 229
الأهنكامى استفاده مى شوند كه بخواهيد كارمعينى را بدفعات تكرار كنيد. براى نمونه فرض كنيد بخواهيد
معدل هر دانشجو را در ترم جارى بدست أوريد. براى اينكار بايد عمليات مربوط به مخاسبه ى معذل .را براى هر
دانشجو تكرار كنيد. انواع حلقه هاى تكرار در زبان 0) # عبارتند از:
allel *: معمولا هنگامی که بخواهید کاری را بدفعات مشخصى (مثلا 10 بار ) تكرار كنيد از
این حلقه استفاده می شود.
الاحلقه امد هنگامی که بخواهید عملی را تا زمان برقراری شرط معین انجام دهید. برای نمونه
خواندن داده های یک فایل تا زمانیکه به انتهای فایل برسید.
فصل دوم - آشنایی با زبان 6 # =
صفحه 19:
Por حلقه
نز
44“ 4
برای آشنایی با نحوه ى كار حلقه ى '1”01. فرض كنيد تعداد معينى ايتم (مثلا تا) را مى خواهيد ge:
sly saps Gli ListBox J = این منظور ابتدا پروژه جدیدی را ایجاد کرده و 01101 را مشابه زیر
طراحی کنید:
For Next Loop #اهطا:
فصل دوم - آشنایی با زبان © # 2
صفحه 20:
بل به/رویداد کلیک دکمه 1,000 ۲66[ ۳0۲ قطعه کد زیر را بنویسید:
ارو ی ما۱
۳۷1
|
Por (1= 51 <= 6; ++)
{I Qckt ke tece the bot
bool ewer. Dek "U7 teow" + 1 + “ re bot");
}
Fern
wien مما اه بط
0 خروچن برنامه:
مسا
Solita
Doli
owed oss
Gut Fen
Duta aDa Lace
فصل دوم - آشنايى با زبان © #
صفحه 21:
1 انطو که گفته شد هنگامیکه تعداد دفعات تکرار حلقه معین نیست از حلقه ۷۷101168 استفاده می کنیم.
بای نمونه فرض كنيد مى خواهيم در يك حلقه تكرار يك عدد تصادفی ایو امک ید مخساف با
۰ است ListBox 50 1, gl نمایش دهیم: وا ملسم
Rexndoen();
۱۰2
| Chea te tet
be(Box(tews.Cleor();
[Process the loop ام +
=d0
while (a = AD)
a= r.Orn(OS);
0 ews Bdd(c);
فصل دوم - آشنایی با زبان 6 # =
صفحه 22:
polite دستورات ۲۲ و a
3
# برای خروج ناكهانى از حلقه قبل از اينكه شرط حلقه بايان يابد از دستور 9۳6816 استفاده می شود. اين
دستور باعث مى شود كنترل اجراى برنامه بقية دستورهاى درون بلوك حلقه را ناديده كرفته وبه
اولین دستور بیرون حلقه پرش می
1# دستور ع 00# نیز شبیه دستور 4ج است اما به جای اين که حلقه را خاتمه دهد. اجرا را به تکرار
بعدی حلقه منتقل میکند. بعبارت دیگر این دستور: ادامة چرخه فعلی را لغو کرده و اجرای دور بعدی حلقه را
آغاز میکند.
## برای کار بیشتر با انواع حلقه ها در 2) # به برنامه "1.00۳5" مراجعه کنید
برای کار بیشتر با انواع 2 پر ۳ مرا
دوم - آشنایی با زبان 6 #
فصل دوم ایی با زبان 7
صفحه 23:
a متدها
Le یک نوع داده یا کلاس در 2) # علاوه بر داده دارای متدها پا توابعی است که بر روی
این داده ها عمل مى كنند. اين متدها امکان پردازش داده ها را فراهم می کنند.
ME دلیل استفاده از متدها اینست که امکان استفاده مجدد از کد را فراهم می آورند. برای نمونه فرض کنید متدی
را نوشته ايد که معدل یک دانشجو را از روی نمرات آن محاسبه می کند. پس از آن هر وقت نیاز به معدل دانشجو
دارید می توانید آن را با فراخوانى اين متد محاسبه كنيد و نيازى به نوشتن دوباره کد ندارید.
ME علاوه بر این استفاده از متد ها اشکال زدایی برنامه ها را آسانتر می کند.
مثال) متد مربوط به محاسبه مساحت دایره:
ورودی: شعاع دایره از نوع 00116
خروجی: مساحت دایره را از نوع double
(daub ros) بلطت ماطح
آرگومان ورودی نام متد مقدار
خروجی
دوم - آشنایی با زبان 6 #
فصل دوم - آشنايى با زبان 2
صفحه 24:
4 متدها
د به دو دسته تقسیم می شوند:
۱- متدهایی که مقدار خروجی دارند. در مثال قبلی. خروجی متد از نوع 01012016 است.
۲- متدهایی که هیچ مقدار خروجی را بر نمی گردانند. اين متدها که به آنها روال می گویند. در روالها
بجاى تعيين نوع خروجى. از کلمه کلیدی ۷۵101 (پوچ) استفاده می شود.
للحي تال
صطحم جما ومسو 5)//
panne = nerdy * reer
pi برطاة باصن 07//
square * Dak.P1; = لح
ret عط متا
ی مب
—
كد متد مربوط به محاسبه
مساحت دایره
با گرداندن مقدار خروجی.
۳ دستور انتهایی متد
فصل دوم - آشنایی با زبان 6 #
۳۴
صفحه 25:
متدها
)& ۲( ) ,له سرام )امس تج
{
double r = (OO; اخونی مد
double area = cab tateBrea(r); تفت سس
piney wag = "rea oF cide "+ aed
)تمس
فصل دوم - آشنایی با زبان © #
۲۵
صفحه 26:
& ارسال به طربق ارجاع (آدرس)
1 تا این لحظه تمام پارامترهایی که در توابع دیدیم به طریق مقد/ر ارسال شدهاند. یعنی ابتدا یک کپی از مقدار
متغیری که در فراخوانی تابع ذکر شده تهیه میشود و تابع بر روی این کپی عملیات را انجام می دهد.
براى مثال اكر radius) al lel aby jo عاط جك)دج )اجات را با مقدار * فراخوانی کنیم ابتدا یک
كبى از مقدار در حافظه تهيه شده و اين مكان حافظه كى>: نامكذارى مى شود. تابع دج3)ج ال حادص
بر روی صله< عمل می کند نه «
دوم - آشنایی با زبان :6 #
فصل دوم ایی با زبان ۶
صفحه 27:
& ارسال به طریق ارجاع (آدرس)
زار ابه طريق مقدار باعث مىشود كه متغيرهاى برنامة اصلی از ت
1 گاهی اوقات عمدا میخواهیم این اتفاق رخ دهد. یعنی میخواهیم که تابع بتواند محتویات متفیر فرستاده شده
به آن را دستکاری کند. در این حالت از ارسال به طریق ارجاع استفاده م ىكنيم.
ات ناخواسته در توابع مصون بمانند. اما
برای این که مشخص کنیم یک پارامتر به طریق ارجاع ارسال میشود. از کلمه کلیدی ۲ در کنار نوع
پارامتر استفاده می شود. این باعث میشود که تابع به جای این که یک کبی محلی از آن آرگومان ایجاد
کند. خود آرگومان محلی را به کار بگیرد. به این ترتیب تابع هم میتواند مقدار آرگومان فرستاده شده را
بخواند و هم میتواند مقدار آن را تفسیر دهد. در این حالت آن پارامتر یسک پارامتر «خواندنی-نوشستنی»
خواهد بو
دوم - آشنایی با زیان 6 #
فصل دوم - آشنایی با زبان 2
صفحه 28:
ارسال به طریق ارجاع (آدرس)
jt = OO void swop(reP iota, reP ict b) متال)
tb = COO; {
)مه a, ref b);
کلمه کلیدی *۲۳ تنها برای ارسال انواع داده ای پایه. مانند اعداد صحیح. اعشاری و رشته ها اسستفاده می
شود. این انواع عددی اصطلاحا انواع مقداری (حجغٍ حان_نامیده می شوند. انواع داده ای که توسط
کاربر یا سیستم با استفاده از کلمه کلیدی ححت تعریف شده اند. بصورت پیش فرض از نسوع ارجاع
Sih 6 (referewr ter)
دوم - آشنایی با زبان 6 #
فصل دوم ایی با زبان vA
صفحه 29:
4 ثابتها (صهه) داده های شمارشی (م؟))
Gora 1 است شما در یک برنامه مقادیری معینی را به دفعات استفاده کنید.با استفاده از ثابتها شما می توانید
ثام های مناسبی به این مقادیر بدهید و با استفاده از اين نام به آنها مراجعه کنید:
:9.06666 2 ۳ سالول سره
ri تمه سمل
بصخ س * retura Pi
}
قق بسیاری از اوقات ما به متفیرهایی نیاز داریم که مقدار آنها تنها می تواند از ینک مجموعه مقادیر محدود
انتخاب شود. برای مثال جنسیت افراد تنها می تواند مرد یا زن باشد. و یا روز هفته که میتواند یکی از مقادیر
شنبه تا جمعه را داشته باشد. كلمه كليدى ENUM به شما اين امكان را مى دهد كه اين نوع داده ها را
تعريف كنين
Oas0iGerk سم
{ نوع داده شمارشی
باحس ,1 = Onwky
Orckerday = 9, MY تفط
بط = 8, Gorda =O, قوس
اد
دوم - آشنايى بازبان © #
فصل دوم - آشنایی با زبان a
صفحه 30:
& داده های شمارشی (۲))
که از داده(های شهازیی + vord Grohe
sky)
jOasOPOerk dd, dO {
dd = OasOPOerk.Guaday; suick (vey)
WO = OasOP Werk. Pricey; {
a
OasOPDerek.Ovaday:
,ام صل ||
سا
—
OasOP Derk. Puesday:
مجه بجخحامجد صل |/
تا
:مخ
تسا
}
برای کار بیشتل با ثابتها و داده های شمارشی 4 Enum", "Constant Demo" (cs asi,
0 مراجعه کنید.
فصل دوم - آشنایی با زبان 6 #
صفحه 31:
4 آرایه ها
2 نمایش لیستی از داده های همنوع استفاده می شوند. با استفاده از آرایه ها شما می توائید یک گروه
آز متغیرها را ایجاد كنيد و به هر یک از آنها با 1100165 دسترسی پیدا کنید. تعریف آن در #02 بصورت زیر
انجام می شود:
و تعریف آرایه ای از رشته ها / /
و( jeter]
#ا با تعریف آرایه حافظه ای به آن اختصاص داده نمی شود. پس از تعریف آرایه می توان با استفاده از کلمه
کلیدی 1161 به شکل زیر فضای مورد نظر را به آن اختصاص داد:
آرایه ای از رشته ها با اندازه ۵ که اندیس آن از ۰ تا ۴ تفییر می HOS
]هه < روز
## مى توان دوعمل فوق را در یک زمان نیز انجام داد:
[ 5 سس < تاه مر
# بعلاوه می توان در هنگام تعریف آرایه می توان عناصرآن را مقدار دهی اولیه کرد:
jaf] bot = cow tal] )0, 16, 46, 60, ©(
فصل دوم - آشنایی با زبان 6 # zi
صفحه 32:
& آرايه ها 5
از اندیس می توان به عناصر آرایه oe بيدا ود سوم 2 تاه اه 0
vir Prra[O] = "Grephocie”
اسان همه(
7((
برای پیمایش عناصر آرایه می توانید از هر یک از حلقه های تکرار که قبلا معرفی شد استفاده کنید. چنانچه
بخواهید تمام عناصر آرایه را پیمایش کنید استفاده از حلقه 0168012 برای این منظور ساده تر و خواناتر است.
برای مثال قطعه کد زیر عناصر آرایه را پیمایش کرده و آنها را در یک 1.59026 به نام 11568011 نمايش
می دهد:
نا( ) virion] botPrieuds = ve sirkrl]
"Brvrat", "Gophers", "Oyceey", "ete" }
Poreurk (siricry = kt hetPrivcrs) Por (i011 = O31 < bef Priccrbs. Lech; ++)
4 =
:]ساسا < و مد = box) Mews Oeki(e);
bool ier Ocel(s); }
}
دوم - آشنایی #C gly lb
فصل دوم - آشنايى با زبان 7
صفحه 33:
& آرایه ها
۳ در 6 # امکان تعریف آرایه ها با ابعاد بزرگتر نیز وجود دارد:
wa ora oF S by 9 wewbers جعصدامو() //
fei[,] waite = ce tot [G, O];
array ced sete totic! yokes مب و HW Oedares
feil,] wor = ow it [,] {{0, 8, 9}, {#,S,0}};
H Oedares 0 cubicd array ocd sets toital voles
raf, J ovbe = ow wt LL] { (17, OC}, (4, }},({9,9}, £8,
61010
HW Oedares 0 complex ara oP OS xO xP x GS xO wewbers
cocplex = cew ict [C, ©, 9, F, S]; ] , , ب] 10
فصل دوم - آشنایی با زبان 0431۳۲ 2
3
صفحه 34:
& آرایه ها
ی رب های چند بعدی در 2) # آرایه های ناهموار (80767601) معروفند. یک آرایه ناهموار دو
بعدى را می توانید جدولی در نظر بگیرید که هر سطر آن می تواند تعداد متفاوتی ستون داشته باشد؛
| Deckwes oa ora oO ares
strc] Porites = cw 60:
I) eitakzes the First array و 3 wewbers ond sets ues
Pawies[O] = cew vir] {"Gok", "Dow", "Dad", ام Phi};
I) eitckzes the second array to 6 جوا and sets ves
Powis |(] = cow siicnl] {"loces", "Dow", "Dad", "Guzie", "Lith
@obby"}
I) itches the third array چاو © وا and sets ves
Pawwies[O] = cw viricel] { "Dikexos", "Bot", "Bob" };
برای کار بیشتر با آرایه ها به برنامه "126100 ۲۲۵" مراجعه کنید.
دوم - آشنایی با زبان :6 #
فصل دوم - آشنایی با زبان rr
صفحه 35:
مدیربت ساده خطاها
کرت >إتفت.. .مو اين امكان را فراهم می کنند که شما بتوانید تمام خطاهای احتمالی در پسروژه را
مدیریت کنید. بدون اينکه اجرای کد شما با رخداد خطا متوقف گردد:
مثال) قطعه کد زیر شعاع یک دایره را دریافت کرده و مساحت آن را محاسبه می کند:
double r=
Cowen. Po Double (NextBoxRadus. Nex);
double = = O.0P *r*r;
Deven @ox.Skow ("Brea =
ts);
#ا اگر کاربر یک مقدار غیرعددی را در کادرمتن وارد کند چون امکان تبدیل آن به عدد وجود ندارد برنامه
دچار اشکال شده و با خطای زیر خارج می شود:
ج222 022
anus ماد نم موه او منهج crt.
Jule dt te sppcsn soe rede
matinee نوا
فصل دوم - آشنایی با زبان 64۱127
۳۵
صفحه 36:
cy po ساده خطاها
ای جلوگیری از این اشتباه می توانید از ...م9 بصورت زیر استفاده کنید:
[0 Skow("@rea =" +s);
Orson @rx. Skou"Oroay Duvber!");
BE در مثال بالابرنامه دستورات بخش try اجرا می کند و در صورت وقوع اشکال کنسترل اجسرای برنامه وارد
بخش مدیریت خطا یعنی اه می شود.
خروجی برنامه هنگامیکه کاربر مقدار غیر
عددی وارد کند
دوم - آشنایی با زبان :6 #
فصل دوم ایی با زبان ?+
فصل دوم – آشنایی با زبان #NET Visual C.
در این فصل بمعرفی زبان Visual C#.NETمی پردازیم .ابت دا
انواع داده استاندارد این زبان و کاربرد آنها شرح داده می ش ود.
سپس به دستورات این زبان می پردازیم و در قالب مثالهایی آنها را
بررسی خواهیم نمود.
فصل دوم – آشنایی با زبان C#.NET
1
انواع داده ها
هنگامیکه می خواهید یک متغیر را تعریف کنید باید C#.NETاز اینکه چه مقادیری می خواهید در
آن ذخیره کنید مطلع باشد .اینکار با مشخص کردن نوع داده این متغیر انجام می شود.
داده های عددی:
نوع داده
شرح
sbyte, short, int, longاعداد صحیح بترتیب با طول 4 ،2 ،1و 8بایت
اعداد صحیح بدون عالمت (بزرگتر از )0بترتیب با طول ،2 ،1
byte, ushort, uint, ulong
4و 8بایت
single, doubleاعداد اعشاری ممیز شناور بترتیب با طول 4و 8بایت
decimalعدد اعشاری با ممیز ثابت با 16بایت
فصل دوم – آشنایی با زبان #C
2
متفاوتند.زبان #C
نکته :دقت کنید که
Intبا هم
داده های عددی
نسبت به کوچکی و بزرگی حروف حساس می باشد برای نمونه intو
//Declare variable
;int i
تعریف متغیر صحیح و مقدار دهی به آن:
//Set number, add
numbers,
;i = 16
i = i + 8; // i = 24
برخی از عملگرهای ریاضی:
عملگر
شرح
*% ,/ ,
عملگر ضرب ،تقسیم اعشاری و تقسیم صحیح ،باقیمانده تقسیم
(unary( -,+
مثبت و منفی کننده
(binary( -,+
عملگر جمع و ،عملگر تفریق
فصل دوم – آشنایی با زبان #C
3
داده های عددی
عملگرهای ریاضی بهمراه نسبت دهی:
i += 8
=*=, /=, +=,-
i=i+8
برای بررسی بیشتر به برنامه IntegerMathمراجعه کنید
اعداد اعشاری:
Declare variable//
;double d
//Set number, multiply numbers,
;d = 45.34
;d *= 4.333
//divide numbers
;d /= 7
برای بررسی بیشتر به برنامه FloatingPtMathمراجعه
کنید
فصل دوم – آشنایی با زبان #C
4
رشته ها ()Strings
رشته ها نوع داده پر کاربرد دیگر هستند .یک رشته دنباله ای از کاراکترهاست که ب رای ذخ یرهته ها دریافت اطالعات
سازی اطالعاتی مانند نام ،آدرس و ...استفاده می شود .کاربرد دیگر رش
ورودی از کاربر و نمایش خروجی به او می باشد.
کاراکترهای تشکیل دهنده یک رشته یونیکد( )Unicodeاست و اندازه هر کدام دو بایت میباشد .بنابراین آنها عالوه بر حروف انگلیسی و سایر کاراکترهای اسکی برای نمایش حروف سایر
زبانهای طبیعی مانند عربی و فارسی و تعداد زیادی عالیم دیگر استفاده می شوند.
-تعریف رشته و مقدار دهی آن
فصل دوم – آشنایی با زبان #C
'Declare
variable
;string str
'Set the string
value
str = "Hello,
;“!world
5
رشته ها
محدودده رشته ها با استفاده از کاراکترهای " و " مشخص می شود .برای مثال در دستور
)"MessageBox.Show("Multiplication test... " + d, "Floating Points
دو عبارت " " ...Multiplication testو " "Floating Pointsرشته هستند.
اگر بخواهیم خود کاراکتر " را در یک رش ته بی اوریم بای د قب ل از این ک اراکتر از ک اراکتر \
استفاده کنیم .برای مثال
// value of s1 equals Ali
"// value of s2 equals "Ali
فصل دوم – آشنایی با زبان #C
;“ string s1 = " Ali
""\string s2 = "\"Ali
6
عملیات برروی رشته ها
#
یک نوع داده یا کالس در زبان شی گرای Cعالوه بر داده دارای متدها یا توابعی است که بر
روی این داده ها عمل می کنند .این متدها امکان پردازش داده ها را فراهم می کنند .برای نمونه
یک رشته حاوی دنباله ای از کاراکترهاست و عالوه بر آن دارای توابعی مانند تعیین زیررشته،
جستجوی یک عبارت در رشته و ...است .برای دستیابی به ویژگیها و متدها یک یک نوع داده از
عملگر نقطه استفاده می شود.
عملگر ][:برای دستیابی به کاراکترهای تشکیل دهنده یک رشته استفاده می شود .این عملگر
تنها خواندنی است .دقت کنید که اولین اندیس ،با شماره صفر مشخص می شود
;“string s = "Hello
'char ch = s[1]; //value of ch equals 'e
فصل دوم – آشنایی با زبان #C
7
عملیات برروی رشته ها
عمل ادغام :ادغام دو رشته با استفاده از عملگر +انجام می شود .برای مثال به قطعه کد زیر توجه کنید
//Set the string values
;”string str1 = "Hello
;“!string str2 = ", world
//Concatenate the strings
"!result = str1 + str2; //value of result equals "Hello, world
نکته :یک مقدار عددی را نیز می توان با یک رشته ادغام کرد دراینحالت ابتدا مقدار عددی تبدیل به
رشته می شود و سپس با رشته ی مورد نظر ادغام می گردد .برای نمونه به قطعه کد زیر توجه کنید.
Set the value//
int i = 26
"" The value of i is: " + i; // "The value of i is:26
فصل دوم – آشنایی با زبان #C
8
عملیات برروی رشته ها
تعیین طول رشته :منظور از طول رشته تعداد کاراکترهای تشکیل دهنده آن است .هر رشته دارای
ویژگی به نام Lengthاست که طول آن رشته را بر می گرداند.
//Set the string values
;“string str = "Hello
int i = str.Length; // i = 5
زیر رشته :یکی دیگر از عملیات پرکاربرد برروی رشته هاست که برای تعیین بخشی از آن رش ته
که از مکان مشخصی شروع می شود ،استفاده می شود .این عمل با استفاده از متد Substring
انجام می شود .این متد دو پارامتر دارد .اولین پارامتر نشاندهنده مکان شروع زی ر رش ته اس ت و
پارامتر دوم طول زیر رشته را مشخص می کند.
فصل دوم – آشنایی با زبان #C
9
عملیات برروی رشته ها
//Declare variable
string s;
//Get the text from the TextBox
s = txtString.Text;
//Display the first three characters
MessageBox.Show(s.Substring(0, 3), "Strings");
//Display the middle three characters
MessageBox.Show(s.Substring(3, 3), "Strings");
//Display the last three characters
MessageBox.Show(s.Substring(s.Length - 3), "Strings");
Cranberry: خروجی برنامه برای رشته
10
#C فصل دوم – آشنایی با زبان
عملیات برروی رشته ها
جستجو در رشته:
برای جستجوی یک کلمه یا متن در یک رشته می توانید از متد IndexOfاستفاده کنید .این متد کلمه با متن
ورودی را در رشته جستجو کرده و اولین موقعیت شروع کلمه را در رشته برمی گرداند .در صورتیکه کلمه مورد
نظر در رشته پیدا نشود مقدار خروجی این متد برابر با 1-است.
string s = "The fox jumped over the
;“wall
MessageBox.Show(s.IndexOf("fo
;))"x
نکته :عملیات متنوع دیگری نیز بر روی رشته ها انجام می شود .برای آگاهی از آنها می توانید از راهنمای
سیستم کمک بگیرید.
فصل دوم – آشنایی با زبان #C
11
نوع داده منطقی bool
داده های منطقی تنها می توانند یکی از دو مقدار (Trueصحیح) یا ( Falseنادرست) را داشته باشند و
بیشتر بمنظور تصمیم گیری استفاده می شوند .برای نمونه نتیجه مقایسه برابری مقدار دو متغیر صحیح aو b
یک داده منطقی است که یا درست ( )Trueاست یا غلط ()False
تبدیل داده ها
برای تبدیل انواع داده به یکدیگر می توانید از کالس Convertاستفاده کنید .فرض کنید sیک رشته و n
یک متغیر decimalباشد.
تبدیل sبه مقدار صحیح Integer//
Convert.ToInt32(s)
تبدیل sبه مقدار اعشاری Double//
Convert.ToDouble(s)
تبدیل عدد nبه مقدار رشته ای String//
Convert.ToString(n)
فصل دوم – آشنایی با زبان #C
.
.
.
12
دستورات شرطی
عبارات شرطی مانند " اگر هوا خوب باشد بعدازظهر به پارک می رویم" در مکالمات ما بدفعات اس__تفاده می
شوند .در برنامه نویسی نیز می توان با دستورات شرطی روند اجرای برنامه را با توجه به شرایط کنترل کرد .ب__رای
این منظور دستور ifبه شکل زیر بکار می رود:
{ ) شرط ( if
دستورات1
}
{ else
دستورات2
}
معنای دستور این است که اگر شرط برقرار بود دستورات 1را اجرا کن در غیراینصورت دستورات2
اجرا شوند .برای بیان شرط مورد نظر اغلب از عملگر های مقایسه ای (> )!= ،== ،<= ،=> ،استفاده
می شود .حاصل شرط یک مقدار trueیا falseاست .عبارات شرطی را می توان توسط عملگرهای
منطقی (&& )|| ,باهم ترکیب عطفی یا فصلی کرد.
فصل دوم – آشنایی با زبان #C
13
دستورات شرطی
برای نمونه اگر مقدار a = 10باشد آنگاه
a < 20 true
a > 15 false
(a < 20) && (a > 15) false
(a < 20) || (a > 15) true
b = 11
)if ( a == 20
b = b10
;= b +1
;else b = b – 1
در صورتیکه بخواهیم بیش از یک شرط را چک کنیم می توانیم از else if
استفاده کنیم
فصل دوم – آشنایی با زبان C#.NET
)If (a == 20
;b = b +1
)else if (a > 20
;b = b * 2
;else b = b – 1
14
دستورات شرطی
دستورات ifرا بصورت تودرت__و ن__یز
می توان نوشت برای نمونه
{)If (x == 3
;)"MessageBox.Show(“x = 3
)If (y == 6
= MessageBox.Show(“y
;)"6
}
برای مقایسه رشته ها می توانید از متد Compareمربوط به نوع داده stringاستفاده کنید .نتیجه مقایسه
دو رشته aو bبا استفاده از این متد در زیر آمده است:
if a = b
=0
if a > b
>0
if a < b
<0
)string.Compare(a,b
نکته :اگر بخواهیم دو رشته aو bرا بدون توجه به کوچکی و بزرگی حروف با هم مقایسه کنیم کافیست مقدار
پارامتر سوم متد Compareرا برابر با trueقرار دهیم ) string.Compare(a,b, true
فصل دوم – آشنایی با زبان #C
15
switch دستور
هنگامی که بخواهید به ازای مقادیر مختلف ی__ک متغ__یر کارهای متف__اوتی را انجام دهی__د معم__وال دس__تور
برای مثال دستور زیر را در نظر بگیرید. استif جایگزین مناسبتری برای دستورswitch
If (customerName == "Bryan“)
(do something)
else if (customerName == "Stephanie“)
(do something)
else if (customerName == " Cathy“)
(do something)
else if (customerName == "Betty“)
(do something)
else (do something)
16
C#.NET فصل دوم – آشنایی با زبان
switch دستور
. می توان بصورت زیر پیاده سازی کردswitch معادل این دستور را بصورت خواناتر با استفاده از
switch(customerName)
{
case "Bryan“:
(do something); break;
case "Stephanie“:
(do something) break;
case "Cathy“:
(do something); break;
case "Betty“:
(do something); break;
default:
(do something); break;
}
."" را بررسی کنیدSelect Demo برای آشنایی بیشتر با این دستور برنامه
17
C#.NET فصل دوم – آشنایی با زبان
حلقه های تکرار
هنگامی استفاده می شوند که بخواهید کارمعینی را بدفعات تکرار کنید .برای نمون__ه فرض کنی__د بخواهی__د
معدل هر دانشجو را در ترم جاری بدست آورید .برای اینکار باید عملیات مربوط به محاسبه ی معدل را برای هر
عبارتند از:
دانشجو تکرار کنید .انواع حلقه های تکرار در زبان C
#
حلقه :forمعموال هنگامی که بخواهید کاری را بدفعات مشخصی (مثال 10بار ) تکرار کنید از
این حلقه استفاده می شود.
حلقه :whileهنگامی که بخواهید عملی را تا زمان برقراری شرط معین انجام دهید .برای نمونه
خواندن داده های یک فایل تا زمانیکه به انتهای فایل برسید.
فصل دوم – آشنایی با زبان #C
18
حلقه For
برای آشنایی با نحوه ی کار حلقه ی ،Forفرض کنید تعداد معینی ایتم (مثال 5تا) را می خواهید در
کنترل ListBoxنشان دهید .برای این منظور ابتدا پروژه جدیدی را ایجاد کرده و Form1را مشابه زیر
طراحی کنید:
فصل دوم – آشنایی با زبان #C
19
For حلقه
: قطعه کد زیر را بنویسیدFor Next Loop ر پاسخ به رویداد کلیک دکمه
//Declare counter variable
int i;
//Perform a loop
for (i = 1; i <= 5; i++)
{
//Add the item to the list
listBox1.Items.Add("I'm item " + i + “ in the list");
}
خروجی برنامه
20
#C فصل دوم – آشنایی با زبان
حلقه while
همانطورکه گفته شد هنگامیکه تعداد دفعات تکرار حلقه معین نیست از حلقه whileاس__تفاده می ک__نیم.
عدد مخ___الف با
variablesزمانیکه این
برای نمونه فرض کنید می خواهیم در یک حلقه تکرار یک عدد تصادفی ایجاد و تا
//Declare
10است آن را در ListBoxنمایش دهیم:
Random r = new
;)(Random
;int n = 0
// Clear the list
;)(listBox1.Items.Clear
//Process the loop until n
= 10
)while (n != 10
{
;)n = r.Next(25
;)listBox1.Items.Add(n
}
فصل دوم – آشنایی با زبان #C
21
دستورات breakو continue
برای خروج ناگهانی از حلقه قبل از اینکه شرط حلقه پایان یابد از دس__تور breakاس__تفاده می ش__ود .این
دستور باعث می شود کنترل اجرای برنامه بقيۀ دستورهاي درون بل__وك حلق__ه را ناديده گرفت__ه و ب__ه
اوليندستور بيرون حلقه پرش ميكند.
دستور continueنيز شبيه دستور breakاست اما به جاي اين که حلقه را خاتم__ه ده__د ،اج__را را ب__ه تكرار
بعدي حلقه منتقل ميكند .بعبارت دیگر اين دستور ،ادامۀ چرخه فعلي را لغو کرده و اجراي دور بع__دي حلق__ه را
آغاز ميکند.
برای کار بیشتر با انواع حلقه ها در #C
فصل دوم – آشنایی با زبان #C
به برنامه " "Loopsمراجعه کنید
22
متدها
#
عالوه بر داده دارای متدها یا توابعی است که بر روی
همانطورکه گفته شد یک نوع داده یا کالس در C
این داده ها عمل می کنند .این متدها امکان پردازش داده ها را فراهم می کنند.
دلیل استفاده از متدها اینست که امکان استفاده مجدد از کد را فراهم می آورند .برای نمونه فرض کنید متدی
را نوشته اید که معدل یک دانشجو را از روی نمرات آن محاسبه می کند .پس از آن هر وقت نیاز به معدل دانشجو
دارید می توانید آن را با فراخوانی این متد محاسبه کنید و نیازی به نوشتن دوباره کد ندارید.
عالوه بر این استفاده از متد ها اشکال زدایی برنامه ها را آسانتر می کند.
مثال) متد مربوط به محاسبه مساحت دایره:
ورودی :شعاع دایره از نوع double
خروجی :مساحت دایره را از نوع double
)(double radius
آرگومان ورودی
فصل دوم – آشنایی با زبان #C
calculateArea
نام متد
double
مقدار
خروجی
23
متدها
متدها به دو دسته تقسیم می شوند:
–1متدهایی که مقدار خروجی دارند .در مثال قبلی ،خروجی متد از نوع doubleاست.
–2متدهایی که هیچ مقدار خروجی را بر نمی گردانند .این متدها که به آنها روال می گویند .در روالها
بجای تعیین نوع خروجی ،از کلمه کلیدی ( voidپوچ) استفاده می شود.
{
کد متد مربوط به محاسبه
مساحت دایره
فصل دوم – آشنایی با زبان #C
//Declare variables
;double square
;double result
//Square the radius
;square = radius * radius
//Multiply it by pi
;result = square * Math.PI
//Return the result
بازگرداندن مقدار خروجی
;return result
دستور انتهایی متد
}
24
متدها
فراخونی متد
private void button1_Click(object sender, EventArgs e)
{
double r = 100;
double area = calculateArea(r);
string msg = "Area of circle is " + area;
MessageBox.Show(msg);
}
25
فراخونی متد
#C فصل دوم – آشنایی با زبان
ارسال به طريق ارجاع (آدرس)
تا اين لحظه تمام پارامترهايي كه در توابع ديديم به طريق مقدار ارسال شدهاند .يعني ابتدا یک کپی از مق__دار
متغيري که در فراخواني تابع ذکر شده تهیه ميشود و تابع بر روی این کپی عملیات را انجام می دهد.
برای مثال اگر در برنامه اصلی تابع ) calculateArea(double radiusرا با مقدار rفراخوانی کنیم ابتدا ی__ک
کپی از مقدار rدر حافظه تهیه شده و این مکان حافظه radiusنامگذاری می ش__ود .ت__ابع calculateArea
بر روی radiusعمل می کند نه r
10
r
کپی
10
فصل دوم – آشنایی با زبان #C
radius
26
ارسال به طريق ارجاع (آدرس)
ارسال به طريق مقدار باعث ميشود که متغيرهاي برنامۀ اصلي از تغييرات ناخواسته در توابع مصون بمانند .اما
گاهي اوقات عمدا ميخواهيم اين اتفاق رخ دهد .يعني ميخواهيم که تابع بتواند محتويات متغير فرستاده شده
به آن را دستکاري کند .در اين حالت از ارسال به طريق ارجاعاستفاده ميکنيم.
براي اين که مشخص کنيم يک پارامتر به طريق ارجاع ارسال ميشود ،از کلم__ه کلی__دی refدر کن__ار ن__وع
پارامتر استفاده می شود .اين باعث ميشود که تابع به جاي اين که يک کپي محلي از آن آرگومان ايجاد
کند ،خود آرگومان محلي را به کار بگيرد .به اين ترتيب تابع هم ميتواند مق__دار آرگومان فرس__تاده ش__ده را
بخواند و هم ميتواند مقدار آن را تغيير ده__د .در اين حالت آن پارامتر يک پارامتر «خواندني-نوش__تني»
خواهد بود.
فصل دوم – آشنایی با زبان #C
27
ارسال به طريق ارجاع (آدرس)
مثال)
)void swap(ref int a, ref int b
{
;int temp = a
;a = b
;b = temp
}
;int a = 100
;int b = 200
;)swap(ref a, ref b
کلمه کلیدی refتنها برای ارسال انواع داده ای پایه ،مانند اعداد صحیح ،اعشاری و رش__ته ها اس__تفاده می
شود .این انواع عددی اصطالحا انواع مقداری ( )value typeنامی__ده می ش__وند .ان__واع داده ای ک__ه توس__ط
کاربر یا سیستم با استفاده از کلمه کلیدی classتعریف ش__ده ان__د ،بص__ورت پیش فرض از ن وع ارجاع
( ) reference typeمی باشند.
فصل دوم – آشنایی با زبان #C
28
ثابتها ( )Contantsداده های شمارشی ()Enum
ممکن است شما در یک برنامه مقادیری معینی را به دفعات استفاده کنید.با استفاده از ثابتها شما می توانید
نام های مناسبی به این مقادیر بدهید و با استفاده از این نام به آنها مراجعه کنید:
;const double Pi = 3.14159265
{)double computeArea(double r
;return Pi * r * r
}
بسیاری از اوقات ما به متغیرهایی نیاز داریم که مقدار آنها تنها می توان__د از ی__ک مجموع__ه مق__ادیر مح__دود
انتخاب شود .برای مثال جنسیت افراد تنها می تواند مرد یا زن باشد .و یا روز هفته ک__ه میتوان__د یکی از مق__ادیر
شنبه تا جمعه را داشته باشد .کلمه کلیدی enumبه شما این امکان را می ده__د ک__ه این ن وع داده ها را
تعریف کنید.
enum DaysOfWeek
{
نوع داده شمارشی
Monday = 1, Tuesday = 2, Wednesday = 3, Thursday
= 4,
مجموعه
Friday = 5, Saturday = 6, Sunday
=7
مقادیر
}
فصل دوم – آشنایی با زبان #C
29
)Enum( داده های شمارشی
استفاده از داده های شمارشی
void ScheduleDay(DaysOfWeek
day)
{
;DaysOfWeek d1, d2
switch (day)
d1 = DaysOfWeek.Sunday;
{
d2 = DaysOfWeek.Friday;
case
DaysOfWeek.Monday:
// do somthing here
break;
case
DaysOfWeek.Tuesday:
// do somthing here
break;
default:
break;
}
Enum" " وConstant Demo" بیشتر با ثابتها و داده های شمارشی به برنامه های
برای کار
}
." مراجعه کنیدDemo
30
#C فصل دوم – آشنایی با زبان
آرایه ها
برای نمایش لیستی از داده های همنوع استفاده می شوند .با استفاده از آرایه ها شما می توانید یک گروه
از متغیرها را ایجاد کنید و به هر یک از آنها با indexدسترسی پیدا کنید .تعریف آن در #Cبص<<ورت زی<ر
انجام می شود:
تعریف آرایه ای از رشته ها //
;string[] strArray
با تعریف آرایه حافظه ای به آن اختصاص داده نمی شود .پس از تعریف آرایه می توان با استفاده از کلمه
کلیدی newبه شکل زیر فضای مورد نظر را به آن اختصاص داد:
آرایه ای از رشته ها با اندازه 5که اندیس آن از 0تا 4تغییر می کند//
];strArray = new string[5
می توان دوعمل فوق را در یک زمان نیز انجام داد:
];string[] strArray = new string[5
بعالوه می توان در هنگام تعریف آرایه می توان عناصرآن را مقدار دهی اولیه کرد:
};int[] list = new int[] {1, 12, 15, 20, 2
فصل دوم – آشنایی با زبان #C
31
آرایه ها
با استفاده از اندیس می توان به عناصر آرایه دسترسی پیدا کرد:
string[] strArray = new string
;][5
.
.
.
"strArray[2] = "Stephanie
MessageBox.Show(strArra
)]y[2
برای پیمایش عناصر آرایه می توانید از هر یک از حلقه های تکرار که قبال معرفی شد استفاده کنید .چنانچه
بخواهید تمام عناصر آرایه را پیمایش کنید استفاده از حلقه foreachبرای این منظور ساده تر و خواناتر است.
برای مثال قطعه کد زیر عناصر آرایه را پیمایش کرده و آنها را در یک ListBoxبه نام listBox1نمایش
می دهد:
string[] listFriends = new string[] { "Robbin",
} ";"Bryan", "Stephanie", "Sydney", "Katie
)for (int i = 0; i < listFriends.Length; i++
{
;]string s = listFriends[i
;)listBox1.Items.Add(s
}
فصل دوم – آشنایی با زبان #C
)foreach (string s in listFriends
{
;)listBox1.Items.Add(s
}
32
آرایه ها
:امکان تعریف آرایه ها با ابعاد بزرگتر نیز وجود دارد
#C در
// Declares an array of 5 by 3 members
int[,] matrix = new int [5, 3];
// Declares a two-dimensional array and sets initial values
int[,] matrix2 = new int [,] { { 1, 2, 3 }, { 4, 5, 6 } };
// Declares a cubical array and sets initial values
int[, ,] cube = new int [,,] { { { 7, 2 }, { 1, 4 } }, { { 3, 5 }, { 4,
4 } } };
// Declares a complex array of 3 x 3 x 4 x 5 x 6 members
Int [, , , ,] complex = new int [2, 2, 3, 4, 5];
33
C#.NETفصل دوم – آشنایی با زبان
آرایه ها
#
یک آرایه ن__اهموار دو.) معروفندJagged( آرایه های ناهموارC یک نوع از آرایه های چند بعدی در
:بعدی را می توانید جدولی در نظر بگیرید که هر سطر آن می تواند تعداد متفاوتی ستون داشته باشد
// Declares an array of 3 arrays
string[][] families = new string[3][];
// Initializes the first array to 4 members and sets values
families[0] = new string[] {"Smith", "Mom", "Dad", "Uncle Phil"};
// Initializes the second array to 5 members and sets values
families[1] = new string[] {"Jones", "Mom", "Dad", "Suzie", "Little
Bobby"};
// Initializes the third array to 3 members and sets values
families[2] = new string[] { "Williams", "Earl", "Bob" };
." مراجعه کنیدArray Demo" برای کار بیشتر با آرایه ها به برنامه
34
#C فصل دوم – آشنایی با زبان
مدیریت ساده خطاها
دستورات try…catchاین امکان را فراهم می کنند که شما بتوانی___د تمام خطاهای احتمالی در پ___روژه را
مدیریت کنید ،بدون اینکه اجرای کد شما با رخداد خطا متوقف گردد:
مثال) قطعه کد زیر شعاع یک دایره را دریافت کرده و مساحت آن را محاسبه می کند:
= double r
;)Convert.ToDouble(TextBoxRadius.Text
;double s = 3.14 * r * r
;)MessageBox.Show("Area = " + s
اگر کاربر یک مقدار غیرعددی را در کادرمتن وارد کند چون امکان تبدیل آن ب__ه ع__دد وج__ود ن__دارد برنام__ه
دچار اشکال شده و با خطای زیر خارج می شود:
فصل دوم – آشنایی با زبان C#.NET
35
مدیریت ساده خطاها
برای جلوگیری از این اشتباه می توانید از try…catchبصورت زیر استفاده کنید:
{ try
= double r
;)Convert.ToDouble(TextBoxRadius.Text
;double s = Math.PI * r * r
;)MessageBox.Show("Area = " + s
}
{catch
;)"!MessageBox.Show("Wrong Number
}
در مثال باال برنامه دستورات بخش tryرا اجرا می کند و در صورت وقوع اشکال کن__ترل اج__رای برنام__ه وارد
بخش مدیریت خطا یعنی catchمی شود.
خروجی برنامه هنگامیکه کاربر مقدار غیر
عددی وارد کند
فصل دوم – آشنایی با زبان #C
36