کامپیوتر و IT و اینترنتعلوم مهندسی

آشنایی با زبان .NET Visual C#

صفحه 1:
۳ ۰ فصل دوم - آشنایی با زبان .0 عحل 70 ۷ ‎if‏ ‏در ین فصل بمعرفی زبان 0.000 اسحدد) می ‎ep jlo‏ ابتدا انواع داده استاندارد این زبان و کاربرد آنها شرح داده می شود. سپس‌به دستورات لین زبان می پردازيم و در قللب مثالهلیی آنها را بررسی خواهیم نمود. فصل دوم - آشنایی با زبان 6431171

صفحه 2:
& انواع داده ها 0 هتگامیکه می خواهید یک متغیر را تعریف کنید باید /0#.009 از اينکه چه مقادیری می خواهید در ]9 آن کخیره کنید مطلع باشد. اينكار با مشخص كردن نوع داده اين متغير انجام مى شود ألا داده هاى عددى: نوع داده شرح 9ط ,4 ,كات ,روات | اعداد صحيح بترتيب با طول ‎.١‏ ۰۲ ۴ و ۸ بایت یر | اعدلد صحیح بدون علامت (بزرگتر از ۰) ترتیب با طول 01 ۲. ‎a‏ , ۴ و ۸ بایت طح ,طم | اعداد اعشارى مميز شناور بترتيب با طول ۴و ۸ بایت امس | عدد اعشاری با ممیز ثابت با ۱۶ بایت فصل دوم - آشنایی با زبان ۸6

صفحه 3:
داده های عددی : دقت کنید که زبان #60 نسبت به کوچکی و بزرگی حروف حساس می باشد برای نمونه 18 و | 108 با هم متفاوتند. 1 ی | تعریف متغیر صحیح و مقدار دهی به آن: ‎fot‏ الو ,جاسم وکا دم ب عدر برخى از عملكرهاى رياضى: عملگر شرح 1 عملگر ضرب. تقسیم لعشاری و تقسیم صحیح. باقیمانده تقسیم ‎unary) -.+)‏ مثبت و منفی کننده ‎binary) -+)‏ عملگر جمع و. عملگر تفريق فصل دوم - آشنایی با زبان ۸6

صفحه 4:
داده های عددی + رد رده 1 عملكرهاى رياضى بهمراه نسبت دهى: ‎i=i+8 = 1 +< 8‏ برای بررسی بیشتر به برنامه 106061772110 مراجعه کنید dnb di ‏اعداد اعشاری:‎ .6 دل بررسی بیشتر به برنامه ۳1010۳۲۳۷۲1 مراجعه فصل دوم - آشنایی با زبان 6

صفحه 5:
۹ رشته ها (ججب) | - رشته ها نوع داده پر کاربرد دیگر هستند. ییک رشته دنبلله ای از کاراکترهاست که برای ذخیره سازی اطلاعلتی مانند نام. آدرس و ... استفاده می شود. کاربرد دیگر رشته ها دریافت اطلاعات ورودی از کاربر و نمایش خروجی به او می باشد. - کاراکترهای تشکیل دهنده یک رشته پونیکد(1210006[]) است و اندازه هر کدام دو بلیت مى باشد. بنابرلین آنها علاوه بر حروف انگلیسی و سایر کاراکترهای اسکی برای نملیش حروف سایر زبانهای طبیعی مانند عربی و فارسی و تعداد زیادی علایم دیگر استفاده می شوند. چیه - تعریف رشته و مقدار دهی آن ۱ ۱ موی بت ما بو" علب ‎or = “Lebo,‏ ‎world!"‏ فصل دوم - آشنایی با زبان 6

صفحه 6:
1 محدودده رشته ها با استفاده از کاراکترهای " و " مشخص می شود. برای مثال در دستور ‎Ovsone rx. Show ("Dudipkoatrs txt..." +d, "Pky Ports")‏ ‎(Pricts™ 5‏ بت(" رشته هستند. قبل از لين كاراكتر از كاراكتر لم دو عبارت "لصا ومتمصاصل 00 اكر بخواهيم خود كاراكتر " را در يك رشته بياوريم استفاده كنيم. براى مثال ‎requis Bk‏ 0د خا سل || ‎Bhi“;‏ ۲ 2 0ك يموع "اه" حاسجج 6و #۲ سل || "اله" د عع مد ‏فصل دوم - آشنایی با زبان 6

صفحه 7:
عملیات برروی رشته ها ایک نوع داده يا کلاس در زبان شی گرای :۸6 علاوه بر داده دارای متدها یا توابعی است که بر روی این داده ها عمل می کنند. این متدها امکان پردازش داده ها را فراهم می کنند. برای نمونه یک رشته حاوی دنباله ای از کاراکترهاست و علاوه بر آن دارای توابعی مانند تعیین زیررشته. جستجوی یک عبارت در رشته و ... است. برای دستیابی به ویژگیها و متدها یک یک نوع داده از عملگر نقطه استفاده می شود. ‎El‏ عملگر :[]برای دستیابی به کاراکترهای تشکیل دهنده یک رشته استفاده می شود. این عملگر تنها خواندنی است. دقت کنید که اولین اندیس, با شماره صفر مشخص می شود ‎pire = "et"; char oh = of] Much oF ob ecco! ‏فصل دوم - آشنایی با زبان 6

صفحه 8:
& عملیات برروی رشته ها ۱ الأعمل ادغام: ادغام دو رشته با استفاده از عملكى + انجام مى شود. براى مثال به قطحه کد زیر توجه کنید UGSet the string values rend = si + ‏:عم‎ /Ivoke of remt eqs “Hello, world!" نکته: یک مقدار عددى را نيز مى توان با یک رشته ادغام کرد دراینحالت ابتدا مقدار عددی تبدیل به رشته می شود و سپس با رشته ی مورد نظر ادغام می گردد. برای نمونه به قطعه کد زیر توجه Set the value)’ inti = 26 "Dhe voke oP ie: "+i; //> "The value of i is:26" فصل دوم - آشنایی با زبان 6

صفحه 9:
عملیات برروی رشته ها ‎wa) ye‏ : منظور از طول رشته تعداد کاراکترهای تشکیل دهنده آن است. هر رشته دارای ویژگی به نام 0720110.] است که طول آن رشته را بر می گرداند. ‎ ‏لس مه با حطا| ‎sirtary sie = "ello";‏ ‎fol < ‏راو‎ // ‎ ‎ ‏#ازیر رشته: یکی دیگر از عملیات پرکاربرد برروی رشته هاست که برای تعیین بخشی از آن رشته که از مکان مشخصی شروع می شود. استفاده می شود. لین عمل‌با استفاده از متد 50517170 انجام می شود. این متد دو پارامتر دارد. اولین پارامتر نشاندهنده مکان شروع زیر رشته است و پارامتر دوم طول زیر رشته را مشخص می کند. ‎ ‏فصل دوم - آشنایی با زبان 6

صفحه 10:
عملیات شته ها 8 ترروی 2 ‎WQDevkwe vortabhe‏ 2۳ 5; Bet the text Proc ‏ع‎ ۳ زرط < و وه و باعلا رولبی)/| Desene Box. Skau(s.Grbsiic(D, 9), "Girkns"); WQieplay the cide ‏موه وا‎ زج( ,)دیسا متسه ۱ :( مسق" ,(9 - رجا )سیسات ویو خروجى برنامه 61 )425 ‎Cranberry:‏ Cra nbe ny فصل دوم - آشنایی با زبان 6

صفحه 11:
ورودی را در رشته جستجو کرده و اولین موقعیت شروع کلمه را در رشته برمی گردان. در صورتیکه کلمه مورد نظر در رشته پیدا نشود مقدار خروجن این مند برايريا ‎"Phe Pow el‏ == )ها ادا مه زر(« نکته: عملیات متنوع دیگری نیز بر روی رشته ها انجام می شود. برای آگاهی از آنها می توانید از راهنمای سیستم کمک بگیرید. فصل دوم - آشنایی با زبان 6

صفحه 12:
نوع داده منطقی ‎bool‏ داده های منطقی تنها می تولنند یکی از دو مقدار ۳186 (صحیح) یا ۳0156 (نادرست) را داشته باشند و بمنظور تصمیم گیری استفاده می شوند. برای نمونه نتیجه مقایسه برابری مقدار دو متفیر صحیح و ظ يك داده منطقى است که یا درست (1۳006) ‎alse) Le | ou!‏ تبدیل داده ها ‎Ml‏ برای تبدیل انواع داده به یکدیگر می توانید از كلاس ‎CONVELE‏ استفاده کنید. فرض كنيد 5 يك رشته و 2 يك متغير ‎ott decimal‏ ‎Ovwert. THABO(s) F Integer || ree jlalio ww oad‏ ‎Cowen. PoDruble(s) > — Double! / 5 Linc! jlade ae bos‏ تبدیل عدد و به مقدار رشته ای 8۲ < ‎Cowert. PoGriag(a)‏ فصل دوم - آشنایی با زبان :#6

صفحه 13:
دستورات شرطی عبارات شرطی ماندد "اگر هوا خوب باشد بعدازظهر به پارک می رویم " در مکالمات ما بدفعات استفاده می شوند. در برنامه نویسی نیز می توان با دستورات شرطی روند اجرای برنامه را با توجه به شرایط کنترل کرد. برای این منظور دستور 3 به شکل زیر بکار می رود 2 ) (شرط) ۸ دستورات۱ الامعناى دستور اين است كه اكر شرط برقرار بود دستورات! را اجرا کن در غیراینصورت دستورات۲ اجرا شوند. براى بيان شرط مورد نظر اغلب از عملكر هاى مقايسه اى (>»2 >: >!) استفاده می شود. حاصل شرط یک ‎true jade‏ | 0156 است. عبارلت شرطی را می توان توسط عملگرهای منطقی (6»6. ||) باهم ترکیب عطفی یا فصلی کرد. فصل دوم - آشنایی با زبان 6 ۳

صفحه 14:
& دستورات شرطی ‎Fine‏ $00 2 a> 6 > Pdbe 418i ssha= 4) eae i (0 <Q) && (> (9) > Pabe (0<@0) || (@> 06) > re در صورتیکه بخواهیم بیش از یک شرط را چک کنیم می توانیم از ‎eo) else Tf‏ استفاده کنیم > ‎bab +d;‏ (00 <م) ۶ ساء ب *9<ط :0 -ط د ط وطع 4 ) فصل دوم - آشنایی با زبان 6431171

صفحه 15:
& دستورات شرطى رات گرا بصورت تودرتو نیز الي توان نوشت برای نمونه ‎Ml‏ برای مقایسه رشته ها می توانید از متد ۳۳۳۳۳() مربوط به نوع داده ‎virion‏ استفاده کنید. نتیجه مقایسه دو رشته و ط با استفاده از این متد در زیر آمده است: ‎=O ‎iris Opepare(b) ‏لماه فاد‎ ‎ ‎> Pa<b ‏نکته: اگر بخواهیم دو رشته ۵و " را بدون توجه به کوچکی و بزرگی حروف با هم مقایسه کنیم کافیست مقدار ‎string.Compare(a,b, true ) p> | 5 true & yly!, Compare acs pye all‏ € ‏فصل دوم - آشنایی با زبان 6

صفحه 16:
4 دستور اند هه که بخواهید به ازای مقادیر مختلف یک متغیر کارهای متفاوتی را انجام دهید معمولا دستور اس جايكزين مناسبترى براى دستور 115 است. براى مثال دستور زير را در نظر بكيريد ‎AP (astowerDuawe == "Bryan')‏ (do sexier) che P (amtrwerDexve == "Gtepheric") (de sxc) ‏ماد‎ ٠١ ) ‏ووو( حرصم‎ ==" Oxtky") (de sxc) che P (newwerDawe == "Betty") (do sorter) ebse (do soxvetin) فصل دوم - آشنایی با زبان 6431171

صفحه 17:
4 دستور كأطاده ‎Jol 0‏ این دستور را بصورت خواناتر با استفاده از 5101010 می توان بصورت زیر پیاده سازی کرد. ‏عسو مارد و سس ‎(do svwethien); broek;‏ ‎vuse “Otephodie”:‏ ‎(do sverethicn) breus;‏ واه ‎pose‏ ‏سس ‎(do somethin); break;‏ تست ‎(do suwethioy); broek;‏ ‏براى آشنايى بيشتر با اين دستور برنامه 1261100 ۳۹6166" را بررسی کنید. ‏فصل دوم - آشنایی با زبان 6431171

صفحه 18:
خلقههای تکرار ‎i 1 "ail‏ #هنگامی استفاده می شوند که بخواهید کارمعینی را بدفعات تکرار کنید. برای نمونه فرض کنید بخواهی معدل هر دانشجو را در ترم جاری بدست آورید. برلی اینکار باید عملیات مربوط به محاسبه ی معدل را برای هر دانشجو تکرار کنید. انواع حلقه های تکرار در زبان #62 عبارتند از: #لاحلقه ۳: معمولا هنگامی که بخواهید کاری را بدفعات مشخصی (مثلا 10 بار ) تکرار کنید از این حلقه استفاده می شود. لاحلقه طامید هنگامی که بخواهید عملی را تا زمان برقراری شرط معین انجام دهید. برای نمونه خواندن داده های یک فایل تا زمانیکه به انتهای فایل برسید. فصل دوم - آشنایی با زبان 6 18

صفحه 19:
Por ail نز 4 4 # برای آشنایی با نحوه ی کار حلقه ی 30۳ فرض کنید تعداد معینی ایتم (مثلا ۵ تا) را می خواهید در ‎J us‏ 115170 نشان دهید. برای این منظور ابتدا پروژه جدیدی را ایجاد کرده و ۳0۳1001 را مشابه زیر طراحی کنید: ‎Fot Newt Loop‏ تن فصل دوم - آشنایی با زبان 6م 1

صفحه 20:
بل به رویداد کلیک دکمه 1,000 66[ 30۲ قطعه کد زیر را بنویسید: تالمج ما۱ ۳1 هط ‎t+)‏ :0 ع> 06۱ ‎Por (t=‏ 3 1 } Fern ‎wien‏ مما اه بط ‏0 خروجی برنامه مسا ‎Solita‏ ‎Doli‏ ‎owed oss‏ ‎Gut Fen ‎Duta aDa Lace ‎ ‏فصل دوم - آشنایی با زبان ©

صفحه 21:
لو رکه گنته شد هنگامیکه تعداد دفعات تکرار حلقه معين نیست از حلقه 1۷10116 استفاده می کنیم. نموه فرض کنید می خواهیم در یک حلقه تکرار یک عدد تصادفی,لیهولم وتا زمازیاکیلهی//عدد مخللف با ۰ است آن را در 1151183017 نمايش دهيم: سص = ‎Qocdow r‏ :الم tia =O; | Chea the tet :)ساسا Process the loop ‏ام‎ + < 0 white (a = dD) a= r.Oern(O8); :)ساسا فصل دوم - آشنايى با زيان © 7 ۱

صفحه 22:
‎a‏ دستورات ۲ و هت 3 ‏ا براى خروج ناكهانى از حلقه قبل از اينكه شرط حلقه يايان يابد از دستور 1016016 استفاده می شود. اين دستور باعث مى شود كنترل اجراى برنامه بقية دستورهاى درون بلوك حلقه را ناديده كرفته و به اولين دستور بيرون حلقه يرش مىكند. ‏لا دستور ۳8 نیز شبیه دستور #۲ است اما به جای این که حلقه را خاتمه دهد. اجرا رابه تکرار بعدی حلقه منتقل می‌کند. بعبارت دیگر این دستور ادامة چرخه فعلی را لفو کرده و اجرای دور بعدی حلقه را آغاز می‌کند. ‎Ml‏ برای کار بیشتر با انواع حلقه ها در #67به پرنامه "1.00105" مراجعه کنید ‏دوم - آشنایی با زبان :#6 فصل دوم ایی با زبان 7

صفحه 23:
‎a‏ متدها ‏دی در ۸60 علاوه بر داده دارای متدها یا توابعی است که بر روی این داده ها عمل می کنند. این متدها امکان پردازش داده ها را فراهم می کنند. لا دلیل استفاده از متدها اینست که امکان استفاده مجدد از کد را فراهم می آورند. برای نمونه فرض کنید متدی را نوشته ايد که معدل یک دانشجو را از روی نمرات آن محاسبه می کند. پس از آن هر وقت نیاز به معدل دانشجو دارید مى توانید آن را با فراخوانی اين متد محاسبه کنید و نیازی به نوشتن دوباره کد ندارید. ‎Ml‏ علاوه بر اين استفاده از متد ها اشکال زدایی برنامه ها را آسانتر می کند. ‏مثال) متد مربوط به محاسبه مساحت دایره: ورودی: شعاع دایره از نوع 001016 ‏خروجی: مساحت دایره را از نوع 001016 ‎cdicteBrea (double rach)‏ لد ‏آرگومان ورودی نام متد مقدار خروجی ‏فصل دوم - آشنایی با زبان :46 فصل دوم ایی با زبان 7

صفحه 24:
4 متدها 2 له دو د سنا تقسیم می شوند: ۱- متدهایی که مقدار خروجی دارند. در مثال قبلی. خروجی متد از نوع 0011016 است. ۲- متدهایی که هیچ مقدار خروجی را بر نمی گردانند. لین متدها که به آنها روال می گویند. در روالها بجای تعیین نوع خروجی از کلمه کلیدی ۷۵361 (پوچ) استفاده می شود. | debe ‏يمد‎ ‏تنل‎ rem ‏صطم عا و۱6‎ sxpre = rochus * rods; ۱) t by pi result = oqrare * Dak. 1; MRetara te remit retura result — كد متد مربوط به محاسبه مساحت دایره بازگرداندن مقدار خروجی ۱ 2 دستور انتهایی متد فصل دوم - آشنایی با زبان 6 ۳۴

صفحه 25:
& متدها ۶ فراخونى متد (ه ‎Private void bute Olck(obiert seader, BuruPres‏ { ‏ال‎ r = (OO; ‏فراخونی متدٍ‎ dbuble area = coke @rea(r); ‏کت تسس‎ ‏بو‎ oy = "Oren oP oid ts" + aed, Ovsrae vx. Skaw(wsy); فصل دوم - آشنايى با زبان ‎#C‏ ۲۵

صفحه 26:
& ارسال به طریق ارجاع (آدرس) 1 تا اين لحظه تمام پارامترهایی که در توابع دیدیم به طريق مقدار ارسال شده‌اند. یعنی ابتدا یک کپی از مقدار متفیری که در فراخوانی تابع ذکر شده تهیه می‌شود و تابع بر روی این کپی عملیات را انجام می دهد. برای مثال اگر در برنامه اصلی تابع (صطلج عاطحل)مس()صهانهاه را با مقدار ۲ فراخولنی کنیم ابتدا یک کپی از مقدار ۲ در حافظه تهیه شده و لین مکان حافظه ۲ نامگذاری می شود. ‎rebuke red ab‏ بر روی اه« عمل می کند نه ۳ ro ۰ فصل دوم - آشنایی با زبان :6« فصل دوم ایی با زبان 7

صفحه 27:
& ارسال به طریق ارجاع (آدرس) زب طریق مقدار باعث می‌شود که متغیرهای برنامة اصلی از تغیبرات ناخواسته در تولبع مصون بمانند. اما 1 گاهی اوقات عمدا می‌خواهیم لین اتفاق رخ دهد. یعنی می‌خواهیم که تلبع بتولند محتویات متغیر فرستاده شده به آن را دس تكارى كند. در اين حالت از ارسال به طریق ارجاع استفاده می‌کنیم. برلى اين كه مشخص كنيم يك بارامتر به طريق ارجاع ارسال مىشود. از كلمه كليدى #8« در كنار نوع بارامتر استفاده مى شود. إين باعث مىشود كه تلبع به جاى اين كه يك كبى محلى از لن أركومان ايجاد کند. خود أركومان محلى را به كار بكيرد. به ين ترتيب تابع هم مىتواند مقدار أركومان فرستاده شده يل بخواند و هم مىتواند مقدار لن را تغيير دهد. در اين حالت أن يارامتر يك يارامتر «خواندنى-نوشتنى» خواهد بود. فصل دوم - آشنایی با زبان :6« فصل دوم ایی با زبان ۷۷

صفحه 28:
& ارسال به طریق ارجاع (آدرس) peta = OO vord swop(reP fat a, re ist b) ‏مثال)‎ 1 iat b = COO; { suxp(ref a, ref b); کلمه کلیدی ۲۳ تنها برای ارسال انواع داده ای پایه. مانند اعداد صحیح. اعشاری و رشته ها استفاده می شود. این انواع عددی اصطلاحا انواع مقداری (عجه صاهم6 _نامیده می شوند. انواع ‎oslo‏ ای که توسط کاربر یا سیستم با استفاده از کلمه کلیدی لح تعریف شده اند. بصورت پیش فرض از نوع ارجاع ‎wth oo (refereuer type)‏ فصل دوم - آشنايى با زبان 6م فصل دوم ایی با زبان 7

صفحه 29:
4 ثابتها (صهه) داده های شمارشی (م؟) ‎oat‏ است شماً در یک برنامه مقادیری معینی را به دفعات استفاده کنیدبا لستفاده از ثابتها شما می توائید نام های مناسبی ‎ay‏ این مقادیر بدهید و با لستفاده از اين نام به آنها مراجعه کنید: ‎poset cerubk Pi = OP ISOCOS;‏ ‎r){‏ )سس ‎double‏ ‏سس * زف ‎retura‏ ‏} ‏#6 بسیاری از اوقات ما به متغیرهایی نیاز داریم که مقدار آنها تنها می تولند از یک مجموعه مقادیر محدود انتخاب شود. برای مثال جنسیت افراد تنها می تولند مرد یا زن باشد. و یا روز هفته که میتولند یکی از مقادیر شنبه تا جمعه را داشته باشد. کلمه کلیدی 8101110 به شما این امکان را می دهد که لين نوع داده ها را تعریف کنین تاناسون سم { نوع داده شمارشی ‎Puesdy = O, Ordaesday =‏ ,0 = بوطلمو() ‏طلس ™ “مجلس ‎Cotta =O,‏ ,6 - بحت } ‎ ‎ ‏فصل دوم - آشنایی با زبان :46 فصل دوم ایی با زبان 1۳۹

صفحه 30:
& داده های شمارشی (۳<) استفاده از دادم(هانی شمازتیی ‎Grhechie‏ اج 1 xkv) jDasOPOerk dd, do { dd = OasOPDerk.Guaday; surticks (dey) WO = ‏:رو ۳ )مرو‎ { nee OaqsOPDrek.Oraday: Il de ‏راو‎ brook; a OarOP Orr Peed: راو و || تسب تست تسا } براى كار بيشتل با ثابتها و داده های شمارشی 4 ‎Enum", "Constant Demo" (co as,‏ 0 مراجعه کنید. فصل دوم - آشنایی با زبان 6

صفحه 31:
& آرايه ها ‎ak‏ نمایش لیستی از داده های همنوع استفاده می شوند. با استفاده از آرایه ها شما می توانید یک گروه ‏آز متغیرها را ایجاد کنید و به هر یک از آنها با 1192016 دسترسى بيدا كنيد. تعریف آن در #62 بصورت زیر ‏5 تمریف آرایه ای از رشته ها // ‎jorrie] sDrray ‏با تعریف آرایه حافظه ای به آن اختصاص دلده نمی شود. پس از تعریف آرایه می توان با استفاده از کلمه‎ ‏کلیدی 11618 به شکل زیر فضای مورد نظر را به آن اختصاص داد: آرایه ای از رشته ها با اندازه ۵ که اندیس آن از ۰ تا ۴ تغییر می کنداا ‎por rrey = vew vircn[S]‏ ‏می توان دوعمل فوق را در یک زمان نیز انجا داد ‎ ‎joie] oe Brray = ce stem] ‏لا بعلاوه می توان در هنگام تعریف آرایه می توان عناصرآن را مقدلر دهی اولیه کرد:‎ ‎jhf] bot = ce ral] )0, 06, 06, 60, ©( ‏فصل دوم - آشنایی با زبان 6 ‎zi‏

صفحه 32:
4 آرايه ها ‎i‏ از آندیسمی توان به عناصر آرایه ‎on‏ پیدا کرد: ‎virion] 2 Orr > oir 91: ‎ ‎fe) ‎Ml‏ برای پیمایش عناصر آرایه می توانید از هر یک از حلقه های تکرار که قبلا معرفی شد استفاده کنید. چنانچه بخواهید تمام عناصر آرایه را پیمایش کنید استفاده از حلقه 016010 برای این منظور ساده تر و خواناتر است. برای مثال قطعه کد زیر عناصر آرایه را پیمایش کرده و آنها را در یک 1.51۳06 به نام 1151۳061 نمایش ‏می دهد: ‎Por (iat = 5 ۱ > bot(Priccds.Lecgh; i++) ‎{ ‏]ها = و رود‎ boon. ews Dek(s); ‏فصل دوم - آشنایی با زبان 6» ‎pire] bofPrieads 2 ‏بو سس‎ ) 6 ۳ ۳ ‏رو‎ "ete" } ‎ ‎0 bokPriewds) ‏سسا مقطا‎ 0): = } ‎ry

صفحه 33:
& آرایه ها ۳ 9 مکان تعریف آرایه ها با ابعاد بزرگتر نیز وجود دارد: وی 9 با 6 ۴و وه مه وله || ‎ce rt [S, OJ;‏ = ی رد ‎Qedwres 0 two-deeeusived array cod gets isitial vohies‏ 1 :1 © ,© ,4 ) ,[ 9 ,© ,0 ) ) [] سد د مسد [يإم ‎ood sets inital values‏ روص ای و وجصدامج() // ,42 ,( © ,© ) ) ,(( © ,0) ,( © ,2 ) ) ) [,] سسص - علد [, ,]اد :1000© ‎Hl Deckves u cowplex ary PO xO xP xS xO weabers‏ ‎ooops = cew int [C, ©, ©, 6, ©[:‏ ] , , ب] 0 فصل دوم - آشنايى با زبان 04۱1۳ 2 3

صفحه 34:
& آرایه ها ی نُوع از آرایه های چند بعدی در #62 آرایه های ناهموار (8070601[) معروفند. یک آرایه ناهموار دو بعدی را می توانید جدولی در نظر بگیرید که هر سطر آن می تواند تعداد متفاوتی ستون داشته باشد: ‎UQele enw Ors‏ اه سس = ‎srrto[][] Powties‏ ‎Ioitaizes the Pirst array to Po wewbers ood sets values‏ )1 ‎Pexvties[O] = cew stricq[] {"Gooik", "Oow", "Dad", "Dare Phi};‏ ‎seco any to G wewbers ond sets vohues‏ لا ماه ۱۱ ‎Pexvties[(] = caw stricql] {"Uoces", "Dow", "Dod", "Guaie", "lithe‏ ‎obby"};‏ ‎Ioitoizes the third array to wewbers ood sets voles‏ )1 ‎Poctes[C] = vew sirtoa[] { "Dilxvs", "Bert", "Bob" };‏ آ# برای کار بیشتر با آرایه ها به برنامه "126100 ۲/۵۲۵ مراجعه کنید. فصل دوم - آشنایی با زبان 6 =

صفحه 35:
مدیربت ساده خطاها رت >اتفدت.. .مو این امکان را فراهم می کنند که شما بتوانید تمام خطاهای احتمللی در پروژه را مدیریت کنید. بدون اینکه اجرای کد شما با رخداد خطا متوقف گردد: مثال) قطعه کد زیر شعاع یک دایره را دریافت کرده و مساحت آن را محاسبه می کند: حم ار :(دك "1 .سطج اسه قيب !)سطس 000 ‎Craven.‏ ‏برخم * 9.06 د ع واططل. ز( + " 2 مسا موه اكر كاربر يك مقدار غيرعددى را در كادرمتن وارد كند جون امكان تبديل أن به عدد وجود ندارد برنامه دجار اشكال شده و با خطاى زير خارج مى شود: ‎ree eee eee‏ anus ‏منهج‎ 0006 046 aration crt. Jule dt te sppcsn soe rede ‎matinee‏ نوا ‏ا ‎ ‏فصل دوم - آشنایی با زبان 6431171 ۳۵

صفحه 36:
‎a‏ مدیربت ساده خطاها ‏22 تجلوگیری از این اشتباه می توانید از . .مط بصورت زير استفاده كنيد: ‎ ‎wt ‎cinbe r= ‏سم‎ PD rub (Dextre. Nex); cinbe = = Ooh. P1 tr ‏ب‎ ‎Orsene Ors. Skoul"Dren =" +5); ‏ات متس تسه ‎Ml‏ در مثال بالا برنامه دستورات بخش ۲ را اجرا می کند و در صورت وقوع اشکال کنترل اجرای برنامه وارد بخش مدیریت خطا یعنی اه می شود. ‏خروجی برنامه هنگامیکه کاربر مقدار غیر عددی وارد کند ‎ ‏فصل دوم - آشنایی با زبان :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اس#تفاده می کنیم. //Declareعدد مخال#ف با #ا زمانیک#ه ای#ن برای نمون#ه فرض کنی#د م#ی خواهی#م در ی#ک حلق#ه تکرار ی#ک عدد تص#ادفی ا#یجاد و ت ‏variables 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به برنامه " "Loopsمراجعه کنید فصل دوم – آشنایی با زبان #C 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

51,000 تومان