You are on page 1of 13

‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .

‬نادٌة ابوالقاسم‬

‫‪Object Oriented Programming II‬‬


‫البرمجة الشيئية‪2‬‬
‫ٍْز ثذا‪ٝ‬خ ربس‪ٝ‬خ ظٖ٘س اىؾبسجبد اإلىنزشّٗ‪ٞ‬خ دػذ اىؾبعخ إى‪ ٚ‬ظٖ٘س ىغبد ثشٍغخ ث٘اسطزٖب ‪ٝ‬زٌ إّزبط ثشٍغ‪ٞ‬بد‬
‫ىزشغ‪ٞ‬و ٕزٓ اىؾبسجبد ٗرطج‪ٞ‬قبد ثشٍغ‪ٞ‬خ رسبػذ ف‪ ٜ‬ؽو ٍشنالد اىَسزخذٍ‪ ِٞ‬ف‪ ٜ‬شز‪ٍ ٚ‬غبالد اىؾ‪ٞ‬بح اىز‪ٝ ٜ‬سزخذً ف‪ٖٞ‬ب‬
‫اىؾبس٘ة ىغشض ٍؼبىغخ اىج‪ٞ‬بّبد ثَخزيف ٍسز٘‪ٝ‬برٖب ٗاىؾص٘ه ػي‪ّ ٚ‬زبئظ ٍٗؼيٍ٘بد دق‪ٞ‬قخ ثأشنبه ٍخزيفخ ريج‪ٜ‬‬
‫ؽبعبد اىَسزخذٍ‪ٗ ِٞ‬رشظ‪ ٜ‬غَ٘ؽبرٌٖ ٗ رطيؼبرٌٖ‪.‬‬
‫ٗقذ رضاٍِ رط٘س ىغبد اىجشٍغخ ثشنو سش‪ٝ‬غ عذاً ‪٘ٝ‬اص‪ ٛ‬رط٘س اىؾبسجبد اإلىنزشّٗ‪ٞ‬خ ثأّ٘اػٖب ٗاألعٖضح اإلىنزشّٗ‪ٞ‬خ‬
‫اىز‪ ٜ‬رؾزبط ألّظَخ رشغ‪ٞ‬و ٗرؼَو ػي‪ٖٞ‬ب ثشاٍظ رطج‪ٞ‬ق‪ٞ‬خ ٍضو اىٖ٘ارف اىزم‪ٞ‬خ ٗغ‪ٞ‬شٕب‪.‬‬
‫ٗميَب مبّذ اٍنبّ‪ٞ‬بد ىغبد اىجشٍغخ ػبى‪ٞ‬خ األداء ٗراد أٍْ‪ٞ‬خ ق٘‪ٝ‬خ ٗسٖيخ االسزخذاً ٍٗخزصشح األم٘اد ٍٗ٘امجخ‬
‫ىيزضاٍِ اىزنْ٘ ى٘ع‪ٗ ٜ‬ىَؼيٍ٘بر‪ ٜ‬أّزغذ ٕزٓ اىيغبد أّظَخ رشغ‪ٞ‬و ثشاٍظ رطج‪ٞ‬ق‪ٞ‬خ ػبى‪ٞ‬خ اىغ٘دح ٗريج‪ ٜ‬سغجبد ٗؽبعبد‬
‫اىَسزخذٍ‪.ِٞ‬‬
‫‪.net framework ‬‬
‫‪ ٕ٘ .net framework‬اغبس ػَو اّشأرٔ ششمخ ٍ‪ٞ‬نشٗس٘فذ إلربؽخ رط٘‪ٝ‬ش اىجشاٍظ ثأمضش ٍِ ىغخ ثشٍغ‪ٞ‬خ‪.‬‬
‫‪َٝ‬ضو ٕزا االغبس اىطجقخ اىفبصيخ ث‪ّ ِٞ‬ظبً اىزشغ‪ٞ‬و ٗث‪ ِٞ‬اىجشاٍظ اىز‪ٝ ٜ‬زٌ اّشبئٖب ثأؽذ ىغبد اىجشٍغخ ‪.‬مَب ‪٘ٝ‬فش مبفخ‬
‫اىَنزجبد ٗاىفئبد اىز‪ٝ ٜ‬ؾزبعٖب اىَسزخذً ىنزبثخ ثشّبٍغٔ‪.‬‬
‫‪ٝ‬زعَِ إغبس ػَو‪ٍNET .‬نزجخ ظخَخ ٍِ اىش‪ٞ‬فشح رؼشف ثبسٌ ‪ٗ Base Class Library‬اىز‪َٝ ٜ‬نِ اسزخذاٍٖب ٍِ‬
‫خاله ىغبد اىجشٍغخ اىَز٘افقخ ٍغ ٕزا اإلغبس ٍضو ىغخ ‪ٗ C#‬رىل ث٘اسطخ رقْ‪ٞ‬بد اىجشٍغخ مبئْ‪ٞ‬خ اىز٘عٔ‪. OOP‬‬
‫ٕٗ‪ ٜ‬ػجبسح ػِ ٍغَ٘ػخ ٍِ اىفئبد ‪ Classes‬رؾز٘‪ ٛ‬ػي‪ ٚ‬األٗاٍش ٗاىذٗاه اىشئ‪ٞ‬س‪ٞ‬خ ف‪ ٜ‬ث‪ٞ‬ئخ ‪. .net‬‬
‫ٕزٓ اىفئبد ٍ٘ع٘د ف‪ ٜ‬عَ‪ٞ‬غ ث‪ٞ‬ئبد ‪ٝٗ، .net‬زٌ اىزؼبٍو ٍؼٖب ٍٗغ خصبئصٖب ثْفس اىطش‪ٝ‬قخ ‪ ٗ ،‬رعٌ اىؼْبصش‬
‫االسبس‪ٞ‬خ ٍضو اىزؼبٍو ٍغ‪ .‬اىَيفبد ٗق٘اػذ اىج‪ٞ‬بّبد ٗ‪ GUI‬وغٌرها‪.‬‬
‫ٗرسبٌٕ ٕزٓ اىَنزجخ ف‪ ٜ‬عؼو اسي٘ة اىجشٍغخ ٍ٘ؽذ ٗأسٖو ٗقبثو ىيزنبٍو ٍغ أ‪ ٍِ ٛ‬اىيغبد اىز‪ ٜ‬رذػٌ ‪.net‬‬
‫ىقذ صْفذ ٕزٓ اىَنزجخ ظَِ ٗؽذاد ثشٍغ‪ٞ‬خ ٍخزيفخ ‪ٝ‬ؼزَذ رصْ‪ٞ‬فٖب ػي‪ّ٘ ٚ‬ػ‪ٞ‬خ اىْزبئظ اىز‪ّ٘ ٜ‬د اىؾص٘ه ػي‪ٖٞ‬ب ٍْٖب‪.‬‬
‫ػي‪ ٚ‬سج‪ٞ‬و اىَضبه ْٕبك ٗؽذح ثشٍغ‪ٞ‬خ خبصخ ثجْبء اىنزو ف‪ ٜ‬رطج‪ٞ‬قبد ٗ‪ْٝ‬ذٗص ْٕٗبك ٗؽذح ثشٍغ‪ٞ‬خ أخش‪ ٙ‬ىيزؼبٍو ٍغ‬
‫اىشجنبد ٗأخش‪ ٙ‬ىزط٘‪ٝ‬ش رطج‪ٞ‬قبد اى٘‪ٝ‬ت ٗغ‪ٞ‬شٕب ٍِ اى٘ؽذاد اىجشٍغ‪ٞ‬خ ٗرْقسٌ ثؼط ٕزٓ اى٘ؽذاد إى‪ٗ ٚ‬ؽذاد‬
‫ثشٍغ‪ٞ‬خ فشػ‪ٞ‬خ أ‪ٝ‬عب ٍضو اى٘ؽذح اىجشٍغ‪ٞ‬خ اىَسزخذٍخ ىزط٘‪ٝ‬ش خذٍبد اى٘‪ٝ‬ت ( ‪ٗ ) Web Services‬اىز‪ ٜ‬رَضو عضء‬
‫ٍِ اى٘ؽذح اىجشٍغ‪ٞ‬خ اىَسزخذٍخ ىزط٘‪ٝ‬ش رطج‪ٞ‬قبد االّزشّذ‪.‬‬
‫‪1‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫مو ٍغبالد االسَبء ٗاىفئبد اىز‪َٝ ٜ‬نِ اسزخذاٍٖب ف‪ ٜ‬مزبثخ اىجشاٍظ اىز‪ٝ ٜ‬زٌ رصَ‪َٖٞ‬ب ثيغبد ‪ٍ٘ .net‬ع٘دح داخو ٕزٓ‬
‫اىجبقخ‪.‬‬
‫فَضال ‪ٝ‬ؾز٘‪ System ٛ‬ػي‪ ٚ‬مو ٍب ‪ٝ‬ؾزبعٔ اىَسزخذً ىزط٘‪ٝ‬ش رطج‪ٞ‬قبد‪ .net‬كما ٌحتوي ا‪ٝ‬عب ً ػي‪ ٚ‬اه ‪Data‬‬
‫‪ٗ types‬اىذٗاه االسبس‪ٞ‬خ ىيؼَي‪ٞ‬بد اىؾسبث‪ٞ‬خ ‪ ..‬اىخ ‪ ،‬ثبخزصبس شذ‪ٝ‬ذ رغذ اُ ‪ٍ ٜٕ System‬غبه األسَبء اىشئ‪ٞ‬س‪ٜ‬‬
‫ٗاىز‪ ٜ‬رؾز٘‪ ٛ‬رؾزٖب ػي‪ ٚ‬ثبق‪ ٜ‬اىفئبد‪.‬‬

‫‪ ‬العنبصر األسبسية لبيئة‪.net‬‬


‫رقذً ‪ . net‬ث‪ ِٞ‬غ‪ٞ‬برٖب صالس ػْبصش سئ‪ٞ‬س‪ٞ‬خ رزؾنٌ ف‪ ٜ‬دٗسح ؽ‪ٞ‬بح اىجشّبٍظ اىَؼزَذ ػي‪ ٚ‬ث‪ٞ‬ئخ ‪. net‬‬
‫ٕزٓ اىزقْ‪ٞ‬بد اىضالس ‪ٝ‬شٍض ىٖب اخزصبساً ثأسَبء ‪. CTS.CLR, and CLS ،‬‬
‫‪2‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫‪CTS .1‬‬
‫‪ٗ. Common Type System‬اىز‪ٝ ٛ‬زٌ اخزصبسٓ ة ‪ٍ CTS‬خزص ثبىزؼبٍو ٍغ اّ٘اع اىج‪ٞ‬بّبد اىَذػٍ٘خ ىيؼَو ظَِ‬
‫ث‪ٞ‬ئخ‪ٗ .net‬م‪ٞ‬ف ‪ٝ‬زٌ اىزؼبٍو ث‪ٗ ٌْٖٞ‬ث‪ ِٞ‬ثؼعٌٖ ‪ٍ ،‬غ ٍشاػبح ٗع٘د ثؼط االّ٘اع غ‪ٞ‬ش اىَذػٍ٘خ ف‪ ٜ‬عَ‪ٞ‬غ ث‪ٞ‬ئبد ‪.net‬‬
‫ٗاىز‪ ٜ‬ر٘عذ ثٖب اخزالفبد ث‪ ِٞ‬ث‪ٞ‬ئخ ٗأخش‪ٕ ٍِٗ .ٙ‬زٓ األّ٘اع ‪:‬‬
‫‪Class‬‬ ‫‪‬‬
‫‪Interface ‬‬
‫‪Structure ‬‬
‫‪Enumeration ‬‬
‫‪CLS .2‬‬
‫اخزصبس ىـ ‪ٍ Common Language Specification‬خزصخ ثبىزؼبٍو فقػ ٍغ اّ٘اع اىج‪ٞ‬بّبد اىق‪ٞ‬بس‪ٞ‬خ ٗاىَذػٍ٘خ‬
‫ٍِ عَ‪ٞ‬غ اصذاساد ث‪ٞ‬ئخ‪. . Net‬و ٕ‪ CTS ٍِ subset ٜ‬رصف اىؾذ االدّ‪ ٍِ ٚ‬اىَزطيجبد اىالصٍخ ىْسزط‪ٞ‬غ اىق٘ه اُ‬
‫ٕزٓ اىيغخ رؼَو رؾذ ث‪ٞ‬ئخ ‪ٗ .net‬ثَؼْ‪ ٚ‬آخش ‪ ،‬فئُ ثؼط ٍؾز٘‪ٝ‬بد ‪ CTS‬اخز‪ٞ‬بس‪ٝ‬خ ؽ‪ٞ‬ش ‪َٝ‬نِ اُ رغذٕب ف‪ ٜ‬ثؼط‬
‫ىغبد‪ٗ .net‬ال رغذٕب ف‪ ٜ‬ا‪ٟ‬خش ‪،‬أ‪ ٛ‬اّٖب ٍغَ٘ػخ ٍِ ٍؾز٘‪ٝ‬بد ‪ CTS‬رٌ رغَ‪ٞ‬ؼٖب ف‪ CLS ٜ‬ىزنُ٘ اعجبس‪ٝ‬خ ىنو ىغخ‬
‫رسزخذً ث‪ٞ‬ئخ ‪. .net‬ىيزط٘‪ٝ‬ش‪.‬‬
‫‪CLR .3‬‬
‫اىـ ‪ Runtime Layer‬ىيجشّبٍظ ‪ ٜٕٗ ،‬اخزصبس ه ‪ٍَٖ ،Common Language Runtime‬زٔ‬ ‫رَضو ‪CLR‬‬
‫االسبس‪ٞ‬خ ٕ‪ ٜ‬اىزؾنٌ ف‪ ٜ‬األّ٘اع ٗاىَنّ٘بد اىشئ‪ٞ‬س‪ٞ‬خ ىيـ ‪ .net‬مثل اىَنزجبد ٗاىذٗاه ‪ٗ -‬ؽغض اىَزغ‪ٞ‬شاد ف‪ ٜ‬اىزامشح‬
‫ٗرقس‪ ٌٞ‬اىزامشح ٗاىزؼبٍو ٍؼٖب ‪ -‬ثبخزصبس شذ‪ٝ‬ذ رشنو اه‪ CLR‬اىَشؽيخ االسبس‪ٞ‬خ ىزشعَخ أٗاٍش‪ٗ .net‬رْف‪ٞ‬زٕب ػي‪ٚ‬‬
‫عٖبص اىنٍ٘ج‪٘ٞ‬رش‪ٗ .‬رعَِ ‪ CLR‬االٍ٘س اىزبى‪ٞ‬خ‪:‬‬
‫‪ ‬اى‪ٞ‬خ اىزْظ‪ٞ‬ف اىزيقبئ‪Automatic Garbage Collector ٜ‬‬
‫رقً٘ ‪ CLR‬ثئداسح اىزامشح ػجش رؾش‪ٝ‬شٕب ٍِ عَ‪ٞ‬غ اىنبئْبد ‪ objects‬اىز‪ ٜ‬اّزٖ‪ ٚ‬دٗسٕب ٗىٌ رؼذ رؤشش اى‪ ٚ‬أ‪ٛ‬‬
‫ّ٘ع‪ ،‬ثَؼْ‪ ٚ‬اُ اىَجشٍظ ى‪ٞ‬س ٍطبىجب ً ثزفش‪ٝ‬غ اىزامشح ٗ رؾش‪ٝ‬شٕب ٍِ اىَ٘اسد اىز‪ ٜ‬ىٌ رؼذ ٍسزخذٍخ الُ ‪CLR‬‬
‫رؼف‪ٞ‬ل ٍِ ٕزٓ اىََٖخ ػجش آى‪ٞ‬خ ‪.Garbage Collector‬‬

‫‪3‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫‪ ‬ؽَب‪ٝ‬خ ٗص٘ه اىن٘د ‪Code Access Security‬‬


‫رؼْ‪ ٜ‬اُ ‪ CLR‬ألخذ ثؼ‪ ِٞ‬االػزجبس صالؽ‪ٞ‬بد اىْظبً اىز‪ٝ ٛ‬زٌ رْف‪ٞ‬ز اىن٘د ػي‪ ،ٔٞ‬ثَؼْ‪ ٚ‬ى٘ اُ اىن٘د ‪ٝ‬ؾز٘‪ ٛ‬ػي‪ٚ‬‬
‫اٍش ٍب ٍِ شأّٔ اىزؼذ‪ٝ‬و اٗ ؽزف ٍيف ٍؾَ‪ ٜ‬ثصالؽ‪ٞ‬بد ٍؼ‪ْٞ‬خ فئُ ‪ CLR‬رذ‪ٝ‬ش ٕزا االٍش ٗ رؾ٘ه ث‪ ِٞ‬اىن٘د‬
‫ٗث‪ ِٞ‬اى٘ص٘ه اى‪ ٚ‬ػْبصش اىؾَب‪ٝ‬خ اىخبصخ ثبىغٖبص اىز‪ْٝ ٛ‬فز ػي‪ ٔٞ‬اىن٘د‪.‬‬
‫‪ ‬اىزؾقق ٍِ اىن٘د ‪Code Verification‬‬
‫ٕزٓ اىخبص‪ٞ‬خ رؼْ‪ ٜ‬اُ ‪ CLR‬رٖزٌ ثعَبُ سالٍخ رْف‪ٞ‬ز اىن٘د مأُ رَْغ اىجشّبٍظ ٍِ ؽغض ٍنبُ ف‪ ٜ‬اىزامشح‬
‫غ‪ٞ‬ش ٍسَ٘ػ ثؾغضٓ‪ٗ ،‬مزىل اداسح االسزضْبءاد ٗاالخطبء اى٘اسدح ف‪ ٜ‬اىجشّبٍظ‪Handling Exceptions‬‬
‫‪ ‬رؾ٘‪ٝ‬و اىن٘د اى٘س‪ٞ‬ػ اى‪ ٚ‬ىغخ االىخ‬
‫‪ MSIL‬ػ‪ ٜ‬اخزصبس ‪ٗ Microsoft Intermediate Language‬رؼشف مزىل ثبالخزصبس ‪ٗ IL‬اىز‪ٝ ٛ‬ؼْ‪ٜ‬‬
‫‪ Intermediate Language‬اٗ ‪ CIL‬اىز‪ٝ ٛ‬ؼْ‪ ٜٕٗ ،Common Intermediate Language ٜ‬اىص‪ٞ‬غخ‬
‫اىز‪ٝ ٜ‬زٌ رؾ٘‪ٝ‬و شفشاد ‪ .net‬اى‪ٖٞ‬ب ثؼذ ػَي‪ٞ‬خ اىزشعَخ ‪ .compiling‬رسزخذً ‪ٍ CLR‬زشعٌ ٍشٖ٘س ثبالسٌ ‪JIT‬‬
‫ٕٗ‪ ٜ‬اخزصبس ىـ ‪ ٍِ Just-In-Time Compiler‬اعو رؾ٘‪ٝ‬و اىيغخ اى٘س‪ٞ‬طخ (اىن٘د ‪ ) IL‬اى‪ ٚ‬ىغخ االىخ ف‪ ٜ‬صٍِ‬
‫اىزْف‪ٞ‬ز ‪. Runtime‬‬
‫ثبىطجغ ى‪ٞ‬س ثبىعشٗسح ٗظغ مو ش‪ٜ‬ء ّؾزبعٔ ىؼَو رطج‪ٞ‬ق ف‪ٍ ٜ‬نبُ ٗاؽذ قذ رنُ٘ ىذ‪ْٝ‬ب ش‪ٞ‬فشح رقً٘ ثأداء‬
‫ٗظبئف ػذح ٍشزشمخ ٍغ رطج‪ٞ‬قبد ٍزؼذدح ٗف‪ ٜ‬ؽبالد مٖزٓ ٍِ األفعو ٗظغ اىَنّ٘بد اىز‪ٝ ٜ‬شزشك ف‪ٜ‬‬
‫اسزخذاٍٖب ػذح رطج‪ٞ‬قبد ف‪ٍ ٜ‬نبُ ثؾ‪ٞ‬ش ‪َٝ‬نِ ىغَ‪ٞ‬غ اىزطج‪ٞ‬قبد اى٘ص٘ه إى‪ٖٞ‬ب‪ٝ ،‬سَ‪ٕ ٚ‬زا اىَنبُ ف‪ ٜ‬ث‪ٞ‬ئخ(‬
‫‪ ) .net‬ثزامشح اىزغَ‪ٞ‬غ اىؼبٍخ ) ‪.Global Assembly Cache ( GAC‬‬

‫‪4‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫‪ ‬كيفية كتابة التطبيقات باستخدام اطار عمل ‪.net‬‬

‫إن كتابة شٌفرة برمجٌة باستخدام إطار العمل ‪ٌ NET .‬عنً كتابة شٌفرة برمجٌة باستخدام إي لغة برمجٌة تدعم هذا‬
‫اإلطار‪ .‬فً هذا المقرر سوف نستخدم احدي اصدارات ‪ Visual Studio .NET‬كأداة لتطوٌر التطبٌقات‪.‬‬

‫إن ‪ Visual Studio .NET‬هً أداة تطوٌر متكاملة وقوٌة تدعم لغة البرمجة ‪ C#‬باإلضافة إلى لغات برمجة أخرى‬
‫مثل ‪F#‬ولغة البرمجة ‪ C++‬ولغة البرمجة ‪Visual Basic .NET‬و غٌرها من لغات البرمجة‪.‬‬

‫لكً نستطٌع تنفٌذ شٌفرة مكتوبة بلغة البرمجة ‪ٌC#‬جب أن نحول هذه اللغة إلى لغة ٌستطٌع نظام التشغٌل فهمها‬
‫وتسمى هذه اللغة باللغة المحلٌة ) ‪ (native code‬أو لغة االلة ) ‪ (machine code‬تسمى عملٌة التحوٌل تلك‬
‫بالترجمة ) ‪ (compiling‬وهً وظٌفة المترجم )‪(compiler‬‬

‫‪ ‬ماهي لغة السي شارب ‪C#‬‬


‫وهً إحدى لغات البرمجة التً تستخدم لتطوٌر التطبٌقات التً تعمل ضمن بٌئة‪ ، .net‬ولقد صممت لغة ‪C#‬من قبل‬
‫شركة ‪ Microsoft‬لتعمل على منصة خاصة بها دون االعتماد المباشر على نظام التشغٌل‪.‬‬

‫فالشٌفرة المكتوبة بلغة ‪C#‬ال تتخاطب مع نظام التشغٌل مباشرة وإنما مع تلك المنصة التً تسمى بإطار عمل ‪NET.‬‬
‫(‪)FRAMWORK.NET‬‬

‫لقد صممت شركة ‪Microsoft‬مجموعة من العملٌات واإلجراءات ضمن هذه المكتبة الضخمة التً توفر هذه على‬
‫المبرمجٌن عناء كتابة الكثٌر من الشٌفرات البرمجٌة التً ٌمكن أن توجد بصورة مجردة أو بشكل قٌاسً لالستخدام‬
‫العام‪.‬‬

‫وهذا واضح من خالل تصرٌحات شركة ‪ Microsoft‬والتً تشٌر إلى أن لغة ‪C#‬هً اللغة االم لكتابة تطبٌقات‬
‫تعتمد على منصة ‪.-.NET‬‬

‫إن لغة برمجة ‪C#‬هً لغة كائنٌة التوجه ‪ OOP‬تجمع بٌن القوة البرمجٌة للغة ‪ C++‬وبٌن سهولة وبساطة البرمجة‬
‫‪Basic‬‬ ‫بلغة ‪Visual‬‬

‫كما انها جمعت مزاٌا لغات البرمجة السابقة مثل ‪Delphi‬و ‪Java‬وابتعدت عن مساوئ هذه اللغات و أخطائها‪.‬‬

‫‪5‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫‪ ‬أهداف شركة ‪ MS‬من لغة ‪C#‬‬


‫‪ .1‬لغة بسيطة‪ :‬جاءت ‪ C#‬لتقضً على التعقٌدات والمشاكل الخاصة باللغات مثل ‪ Java , C++‬فقامت بإلغاء‬
‫الوراثة المتعددة التً تسبب االلتباس لدى مطوري ‪.C++‬‬
‫‪ .2‬لغة حديثة‪ :‬أن معالجة االستثناء وأنواع البٌانات القابلة للتوسع وكذلك أمن األوامر هً سمات تتصف بها‬
‫اللغات الحدٌثة‪.‬‬
‫‪ pointer .3‬مكون أساسً فً لغتً ‪ C++ ,C‬وهذا المكون من أكثر األجزاء التً تسبب االلتباس لدى‬
‫المبرمجٌن‪ .‬وقد تم ألغاء العدٌد من التعقٌدات والمشاكل التً ٌحدثها هذا المكون فً ‪.C#‬‬
‫‪ .4‬لغة برمجة كائنية التوجه‪ :‬لكً تكون لغة البرمجة كائنٌة البد لها من مفاهٌم أساسٌة تتصف بها وهً الكبسلة‬
‫او التغلٌف ‪ capsulation‬والوراثة ‪ Inheritance‬وتعدد األوجه ‪ Polymorphism‬و لغة ‪ C#‬تدعم كل‬
‫هذه المفاهٌم ‪.‬‬
‫‪ .5‬لغة قوية ومرنة‪ :‬حٌث ٌمكن استخدامها فً المشارٌع الكبٌرة ذات األشكال المتعددة كالبرامج الرسومٌة‬
‫وجداول البٌانات وبرامج ‪ compilers‬للغات أخرى‪.‬‬
‫‪ .6‬لغة ذات كلمات قليلة‪ :‬تستخدم لغة ‪ C#‬كلمات دلٌلٌه أو أساسٌة قلٌلة وهً األساس التً تبنى علٌه إجراءات‬
‫اللغة‪ .‬فاالعتقاد بأن اللغة ذات العدٌد من الكلمات األساسٌة هً لغة قوٌة غٌر صحٌح ‪ ،‬فعندما تقوم بالبرمجة‬
‫باستخدام لغة ‪C#‬ستجد أنها لغة ٌمكن استخدامها فً أداء أي مهمة‪.‬‬
‫‪ .7‬لغة نمطية‪ :‬األوامر فً ‪ C#‬تكتب على شكل ‪ Classes‬أي أصناف والتً ٌمكن إعادة استخدامها فً برامج‬
‫أخرى‪.‬‬
‫‪ ‬انواع التطبيقات التي يمكن تطويرها باستخدام لغة ‪C#‬‬
‫بحٌث ٌمكن بواسطتها انتاج تطبٌقات برمجٌة‬ ‫تعتبر لغة ‪ Visual C#.Net‬من اللغات البرمجة متعددة االغرا‬
‫فً أكثر من مجال وٌمكن أن نذكر أ أهم التطبٌقات البرمجٌة التً تنتجها ‪ VC#.Net‬كالتالً ‪:‬‬
‫‪ Console Application .1‬وٌتم فٌه عمل تطبٌقات خاصة بالبرمجة اإلجرائٌة والبرمجة كائنٌة التوجه ‪OOP‬‬
‫وتظهر النتائج البرمجٌة فً هذا التطبٌق على شاشة ال ‪DOS .‬‬
‫‪Windows Form Application .2‬وٌتم فٌها عمل تطبٌقات خاصة بالبرمجة المرئٌة وتظهر النتائج‬
‫البرمجٌة فً هذا التطبٌق على شكل نوافذ تش به تلك الموجودة فً نظام التشغٌل ‪.Windows .‬‬

‫‪6‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫) ‪ ASP.Net Application ( Web‬وٌتم فٌها تصمٌم وبرمجة مواقع وصفحات الوٌب بشكل دٌنامٌكً‬ ‫‪.3‬‬
‫حدٌث بحٌث أصبح باإلمكان تصمٌم وبرمجة قواعد البٌانات وعمل تطبٌقات مرئٌة ونوافذ على صفحات‬
‫الوٌب بمنتج واحد ‪.‬‬
‫‪ .4‬تطبٌقات أخرى مثل ‪ WPF , WCF‬وتطبٌقات ‪Office , DataBase , Reporting , Smart Device‬‬
‫وغٌرها من التطبٌقات البرمجٌة الهامة ‪.‬‬

‫‪Console Application ‬‬

‫من نافذة بٌئة ‪ VS‬كما فً الشكل(‪ )3‬نضغط على الرابط ‪ New project‬من النافذة ‪ Start Page‬أو من‬
‫القائمة المنســــدلة ‪ FILE‬فً شرٌط القوائـــم المنسدلة نختــــــار االمر ‪. New project‬‬

‫‪7‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫شكل رقم ‪3‬‬


‫فتظهر لدٌنا النافذة كما فً الشكل رقم (‪.)4‬‬

‫شكل رقم )‪(4‬‬


‫نختار من القائمة المنسدلة ‪ installed‬على ٌسار النافذة الخٌار ‪ Visual C#‬ومن النافذة المتوسطة نختار‬
‫‪ Console Application‬ونختار من القاتمة المنسدلة فً الوسط اصدار ‪ NET Framework .‬الذي‬

‫‪8‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫نرٌد بناء التطبٌق تحت منصته وٌفضل اختٌار أحدث اصدار وهو مختار بشكل افتراضً من قبل البرنامج‬
‫ثم نقوم بتغٌٌر اسم التطبٌق فً الخانة ‪ Name‬إلى االسم ‪ Console hello world‬مثلا ثم نختار مكان‬
‫حفظ المشروع بالضغط على الزر ‪ Browser‬ثم نضغط على زر ‪ ok‬فٌظهر لنا الشكل ‪5‬‬

‫شكل رقم )‪(5‬‬


‫فً الشكل السابق ٌظهر اربعة نوافذ وشرٌط القوائم المنسدلة ‪- :‬‬

‫ان النافذة المسماة ‪ Solution Explorer‬تظهر قائمة بالملفات المكونة للبرنامج أما النافذة ‪ Properties‬فهً‬
‫تظهر خصائص االدوات وسوف نستخدمها فً تطبٌقات ‪ Forms Windows‬بشكل كبٌر أما النافذة المسماة ‪Error‬‬
‫‪ List‬فهً تظهر قائمة االخطاء البرمجٌة التً نرتكبها أثناء كتابة البرنامج‪.‬‬

‫اما النافذة الرابعة المسماة ‪ Program.cs‬وهذه النافذة هً مبتغانا لكتابة الشٌفرة البرمجٌة‪ ،‬كما ٌظهر فً هذه النافذة‬
‫الكثٌر من التعلٌمات البرمجٌة الموجودة بشكل افتراضً‪.‬‬

‫‪9‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫اهم الدوال التً تحتوٌها الفئة ‪ Console‬هً دوال االدخال واالخراج‪ .‬باإلضافة الى دوال اخرى خاصة بعملٌات‬
‫االلوان وغٌرها‪.‬‬

‫‪ ‬ىقشاءح ٍذخالد ّص‪ٞ‬خ ٍِ اىَسزخذً ٗ ‪ٝ‬زٌ االّزٖبء ٍِ اىقشاءح ثبىعغػ ػي‪ ٚ‬صس االدخبه ‪enter‬‬

‫;)(‪string x = Console.ReadLine‬‬
‫ىطجبػخ اىْص ٗاىجقبء ف‪ّ ٜ‬فس اىسطش ثؼذ االّزٖبء‬ ‫‪‬‬

‫;)"‪Console.Write("Eng27‬‬

‫‪ ‬ىطجبػخ اىْص ٗاالّزقبه اى‪ ٚ‬سطش عذ‪ٝ‬ذ ثؼذ االّزٖبء‬

‫)‪Console.WriteLine(string‬‬
‫ىطجبػخ أمضش ٍِ ػجبسح ّص‪ٞ‬خ‬ ‫‪‬‬
‫;"‪string name = "Hasan‬‬
‫;)‪Console.Write("Hello Mr: " + name‬‬
‫ٗف‪ ٜ‬اىؼجبساد اىنض‪ٞ‬شح‪ْٕ ،‬بك ص‪ٞ‬غخ ٍخزصشح‬ ‫‪‬‬
‫;"‪string car = "Kia", model = "Spectra‬‬
‫;‪int cost = 9000‬‬
‫;)‪Console.WriteLine("Car Name: {0}\nModel: {1}\ncost: {2}",car,model,cost‬‬
‫‪ ‬ىزغ‪ٞٞ‬ش ىُ٘ اىخيف‪ٞ‬خ‬
‫;‪Console.BackgroundColor = ConsoleColor.Blue‬‬
‫‪ ‬ىزغ‪ٞٞ‬ش ىُ٘ اىْص‬

‫;‪Console.ForegroundColor = ConsoleColor.Red‬‬
‫‪ ‬ىزَن‪ ِٞ‬اىَسزخذً ٍِ قشاءح اىْص اىظبٕش ػي‪ ٚ‬اىشبشخ‬

‫;)(‪Console.Read‬‬

‫‪ ‬ىَسؼ اىْص اىظبٕش ػي‪ ٚ‬شبشخ االخشاط‬

‫;)(‪Console.Clear‬‬

‫مثال‪:‬‬

‫‪11‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫هناك عدة طرق الختبار البرنامج اما بالضغط على زر ‪ F5‬من لوحة المفاتٌح او بالضغط على زر ‪Start‬‬
‫الظاهر أسفل شرٌط القوائم المنسدلة أو من القائمة المنسدلة ‪DEBUG‬نختار االمر ‪ Start Debugging‬فٌظهر‬
‫لدٌنا الشكل رقم (‪) 7‬‬

‫شكل رقم (‪)7‬‬

‫بالعودة إلى شٌفرة البرنامج ونقوم بحذف الفاصلة المنقوطة من نهاٌة أي سطر نرٌد ولٌكن من السطر الذي‬
‫ٌحوي الشٌفرة التالٌة‪:‬‬

‫‪Console.BackgroundColor = ConsoleColor.Blue‬‬

‫‪11‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫نالحظ أن نافذة ‪ Error List‬قد اظهرت رسالة تشٌر إلى وجود خطأ ما فً السطر رقم ‪ 13‬كما فً الشكل‬

‫شكل رقم (‪)8‬‬

‫مثال‪:2‬‬

‫ستكون النتٌجة واحد باستخدام احد االسلوبٌن المستخدمٌن فً جملة الطباعة‪:‬‬

‫‪Console.WriteLine("hello‬‬ ‫;)‪"+ name+" your age is "+ age‬‬


‫;)‪Console.WriteLine("hello name{0}-age{1} ", name, age‬‬

‫‪12‬‬
‫الفصل الدراسً‪ :‬الخامس‬ ‫البرمجة الشٌئٌة ‪ / 2‬أ‪ .‬نادٌة ابوالقاسم‬

‫‪13‬‬

You might also like