# برمجة سي شارب

تستهدف هذه اللغة الأشخاص الذين يودون تعلم البرمجة و يودون البدئ بلغة برمجية جديدة وتستهدف المبرمجين غير المتبدئين سبق لهم تعلم و أن تعلموا البرمجة لغات أخرى مثل فيزول بيسك و اللغات السابقة لظهور هذه اللغة .
شركة مايكروسفت صممت هذه اللغة كي تعمل بإستقلال عن نظام التشغيل قدر الإمكان , فالشفرة المكتوبة بلغة #C لا تتخاطب مع نظام التشغيل مباشرة وإنما مع إطار عمل . NET .
وقد صممت الشركة مجموعة من العمليات و الإجراءات ضمن مكتبة ضخمة جدا توفر هذه المكتبة على المبرمجين عناء كتابة الكثير من الشيفرات البرمجية التي يمكن أن توجد بصورة مجردة أو بشكل فياسي للاستخدام العام . تسمي هذه المكتبة بإطار عمل NET . ولن أخفي عليك عزيزي القارئ أن لغة #C لو حدها لا تسطيع القيام بالكثير ما لم تعتمد على إطار عمل نت و هذا واضح جدا من خلال تصريحات الشركة و التي تشير إلى أن لغة #C هي اللغة الأم لكتابة تطبيقات تعتمد على منصة . NET
إن لغة #c هي لغة كائنية التوجه (Object-Oriented) , تجمع بين القوة البرمجية للغة ++c وبين سهولة و بساطة البرمجة بلغة Visual Basic . ولن أبالغ إذا قلت إن هذه اللغة قامت بجمع مزايا لغات البرمجة السابقة مثل Delphi و Java وابتعدت عن مساوئ هذه اللغات وأخطاءها. ويكفي أن نقول أنك بواسطة لغة ستتمكن من تصميم أعقد التطبيقات وبمجهود أقل بكثير من الذي يمكن أن تبذله باستخدام لغات برمجية أخرى .

## برمجياً

من أهم الأشياء التي يجب معرفتها المتغيرات:
* int بيانات من النوع أرقام (Numbers), مثال : 235465 .
* double بيانات من النوع أرقام (عدد كبير من الأرقام).
* decimal يحمل بيانات من النوع العشرى مثال 124.353 .
* float مثل decimal ولكنها تعرض بعد العلامه العشريه عدد اقل .
* String بيانات من النوع سلسلة نصية (data) مثال: Mohammed .
* char بيانات رقم واحد فقط أو محرف واحد فقط (character) مثال C.
* bool هيا تكون خيارين true or false، مثلا نريد تعريف متغير رقم سيتغير حسب رغبة المبرمج ;int x = 0 وكذلك السترينج اما bool مثلا توجد خاصية اسمها visible في properties تكون خيارين true أي ظاهر أو false فمثلا label ظاهرة تريد عند الضغط على الزر يعطى أمر اخفاء ال label Button1.visible = false
* ومن المهم أن نعرف أيضاً أن أي جملة في البرمجة بهذه اللغة تنتهي دائماً بهذا الشكل ;
* كما يجب أن نعرف أن label هو نص لا يمكن التعديل فيه إلا عبر أوامر البرنامج
* Button زر عند الضغط عليها يتم إعطاء أمر برمجي.
* Textbox هو نص يمكن التعديل عليه من قبل المستخدم.
* u عند كتابة . بعد اسم زر أو ليبل أو تكستبوكس تعني خاصية معينة كالتكست للتغير فيها.

## تعريف المتغيرات

في لغة السي شارب يوجد عدة أنواع من المتغيرات وهي :
* متغير عددي
* متغير نصي
* متغير منطقي

#### متغير عددي

وهو متغير يحفظ داخله الأرقام وله ثلاثة أنماط رئيسية :
* int : وهو أي عدد صحيح .
* float : وهو أي عدد حقيقي
* double : وهو أي عدد حقيقي مع فواصل أكثر

#### متغير نصي

وهو متغير الذي تحفظ به الرموز والنصوص وله نمطان رئيسيان :
* char : وهو متغير يحفظ به رمز واحد فقط
* string : وهو متغير يحفظ به عدد غير محدود من الرموز سوياً

#### متغير منطقي

وهو متغير يعمل وفقا لمنطق البرنامج ويمكن أن يحوي فقط إما القيمة true أو القيمة false , وله نمط رئيسي واحد : bool

## الأوامر الرئيسية

نحن في السي شارب نستعمل برنامج Microsoft Visual C# studio , وفي هذا البرنامج نستعمل الـ System أي -الجهاز- ونستعمل الـ Console الموجود بالجهاز لكتابة الأوامر .

#### أمر الإستقبال

يستعمل هذا الأمر لإستقبال قيم للمتغير وتكتب هكذا : ;Console.Readline لإستقبال نص وهكذا لإستقبال غير النص : type.Parse(Console.Readline); type:(int/float/double/char) z والنمط(type) يمكن أن يكون أي نوع متغير إلا المتغير المنطقي : bool
* الحرف z لا يكتب لكننا نضعه في ويكي لتبقى السطور مرتبة عند تخالط اللغات
* مثال :
* إستقبال عدد صحيح x=int.Parse(Console.ReadLine); int

#### أمر الطباعة

يوجد أمران للطباعة :
* WriteLine; z وهو يطبع السطر المكتوب بين الأقواس أو المتغير الموجود بين الأقواس على الشاشة وفي الطباعة التالية يطبع على السطر التالي , إذا لم يوضع أي شيء بين الأقواس فيطبع سطر فارغ
* Write; z وهذا يطبع السطر المكتوب بين الأقواس أو المتغير الموجود بين الأقواس على الشاشة وفي الطباعة التالية يطبع على نفس السطر ويستمر في ذلك حتى تلقي أمر للطباعة على السطر التالي (الأمر أعلاه)
* الحرف z لا يكتب لكننا نضعه في ويكي لتبقى السطور مرتبة عند تخالط اللغات
* مثال :
Console.WriteLine("Hello World"); z هذا الأمر يطبع العبارة Hello World على الشاشة والمزدوجين يوضعان ليعرف البرنامج أو الجهاز أننا نريد طباعة العبارة لا المتغير
* Console.Write(x); z هذا الأمر يطبع قيمة المتغير x على الشاشة

#### أمر الإنتظار

إن البرنامج عند تشغيله تظهر لك الشاشة السوداء وفور ما ينهي عملياته وأوامره يغلق الشاشة السوداء , لكي نجعل البرنامج لا يغلق الشاشة حتى ننتهي منها نكتب أمر الإنتظار ReadKey; z ويغلق الشاشة عند الضغط على أي زر كان
* الحرف z لا يكتب لكننا نضعه في ويكي لتبقى السطور مرتبة عند تخالط اللغات
* مثال :
Console.Readkey; z

## البرنامج الأول

* الحرف q لا يكتب لكننا نضعه في ويكي لتبقى السطور مرتبة عند تخالط اللغات
Using System; q
class Test1 q
{ q
static void Main q
{ q
int x,y,z; q
x=int.Parse(Console.ReadLine); q
y=int.Parse(Console.ReadLine); q
z=x+y; q
Console.Write(z); q
Console.WriteLine(" Have Funn C#"); q
Console.ReadKey; q
} q
} q
* يطبع على الشاشة
* 5
* 6
* Have Funn C# 11
* الرقمان 5و6 لا يطبعان بل المستخدم يكتبهما على الشاشة لوجود أمر الإستقبال ويمكن كتابة أي رقمين خيرهما وأن يعمل حسبهما