post

#22 مكتبات الدوال Namespace – البرمجة بواسطة #C

رمز فتح مرحلة هذا الدرس في تطبيق طورني : VVG

تَعلُمُ البرمجةِ للمبتدئينَ كلياً بواسطةِ #C – التعامل مع المكتبات Namespace

تحدثنا في الدروس الماضية كيف أن Microsoft قامت بكتابة العديد من الدوال التي من هدفها أن تقوم بتسهيل عملنا على المشاريع. كيف قامت Microsoft بتنظيم و تصنيف هذه الدوال ، و ما هي الـ Assemblies ، و ما هي دلالة كلمة using ؟ هذا ما سوف نتعرف عليه في هذا الدرس ان شاء الله .

ما هي ال Assembly Code Files؟

كما تحدثنا في المقدمة فإن Microsoft قامت ببناء و كتابة آلاف من الدوال التي من هدفها أن تساعدنا في مشروعنا ، فكما لاحظنا و كثيراً استخدمنا دالة Consloe.WriteLine . WriteLine هي دالة لكتابة شيء على الشاشة ، هذه الدالة تمت كتابتها بواسطة Microsoft.

الشيء الذي نود توضيحه هنا هو أنه في كل مرة نقوم بإنشاء مشروع جديد يقوم المحرر باستدعاء الدوال التي تهمنا في هذا المشروع ، فمثلا عندما نقوم بعمل مشروع Console نجد أنه يستخدم بعضا من الـ References الموجودة على اليمين ،حيث نجد مثلا System , System.Core , System.Data ,System.Net.Http و غيرها .. ، هو فعليا يقوم باستدعاء هذه المكتبات ، و هذه المكتبات يمكن أن نبسطها على أنها ملفات Code Files تسمى Assemblies.

هذه الـ Assemblies قامت Microsoft بتقسيمها لأقسام كثيرة ، لأنه تخيل أن تقوم باستدعاء كافة المكتبات التي تكلمنا عنها – والتي تعتبر بمئات الآلاف من الـ Functions – ، فليس من المنطق أن تقوم باستدعاء كل هذه المكتبات ، لأنه أولا سينتج بطؤ شديد في التطبيق ، بالإضافة إلى أن كل الدوال ستخزن في الـ Memory الخاصة بالجهاز، و بالتالي لن يستطيع التعامل مع أي شيء آخر.

إذاً Microsoft قامت بتقسيم هذه الملفات إلى أقسام معينة ، و الجميل في الموضوع أنه كل مرة نقوم بكتابة Method داخل الـ Application الخاص بنا فإنه يمكننا إعادة تحويلها إلى Assembly ، حيث أننا إن شاء الله سنتعلم في الدرس القادم كيف يمكننا تحويل الـ Method التي قمنا بكتابتها إلى ملفات dll لكي نستخدمها في مشاريع أخرى مستقبلية .

ما هي دلالة كلمة Using؟

إذاً أنا قمت بفتح مشروع جديد Console و أسميته AssembliesAndNamespaces ، و بإمكانكم إيقاف الفيديو و الذهاب لعمل مشروع جديد ، قمت بكتابة سطرين فقط ، Console.WriteLine و Console.ReadLine . و لاحظو أن هذا النوع من المشاريع “الـ Console” يستدعي كما تكلمنا قبل قليل مجموعة من الـ References يمكن أن نجدها هنا في القائمة الموجودة على اليمين .

و من أهم الـ References المستخدمة في هذا المشروع هو الـ System ، و أحيانا من ضمن هذه الـ Libraries يتواجد أسماء Methods تتشابه مع أسماء Methods موجودة في كلاسات أخرى ، و لكي نقوم بحل هذه المشكلة يجب علينا أن نقوم باستدعاء الـ namespace الأصل الخاص بهذه الـ Method .

لتوضيح هذا الأمر ، لنفترض أنني أريد شخصاً اسمه أسامة ، في هذا العالم هناك مئات الآلاف من الأشخاص الذين يحملون اسم أسامة ، لهذا إذا قمت بوضع قيود ، و لنقل أنني أريد أسامة محمد ديب ، فإنني أكون قد قيدت المقصود بالاسم الثلاثي له ، على فرض أنه لا يوجد سوى أسامة محمد ديب واحد في العالم ، و بذلك نكون قد حللنا موضوع التضارب بين الأسماء .

ذات الأمر في الكود الخاص بنا هنا ، فعندما نقوم باستخدام الـ namespace الكامل الخاص بالـ Method ، ثم كتابة الـ Method نكون قد قمنا بالحد من التضاربات الموجودة. فعندما ننظر هنا إلى الكود ، سنجد أن دالة Console موجودة في الـ namespace الذي اسمه System . و عند تعديل الكود ليصبح :

System.Console.WriteLine(“…”);

سأكون استدعيت الـ namespace الخاص بـ Console ، و استخدمتها مباشرةً ، نلاحظ أن الكلمة System أصبح لونها رمادياً ، و هذا يعني أنه يمكن الاستغناء عن الكلمة ، و لا يشترط أن أقوم بكتابتها. لأننها قمنا في الأعلى بكتابة :

using System;

و بذلك نكون قد أخبرنا التطبيق أنه “أي Method تابعة للـ namespace المسمى System ، قم باستخدامها مباشرة ، دون الحاجة لكتابة الـ namespace الخاص بها في كل مرة”.
فمثلا لو حذفت الـ 5 اسطر الأولى الموجودة في الأعلى ، سنجد مباشرة أن السطر رقم 9 :

System.Conole.WriteLine(“…”);

قد تحولت الكلمة System من اللون الرمادي إلى اللون الأبيض ، بمعنى أنه يجب استخدامها الآن
كما سنلاحظ ظهور خطأ في السطر العاشر . Console.ReadLine();

و قمنا بعمل Run للـ Application سنجد أن البرنامج تم تنفيذه بشكل صحيح دون مشاكل .

إذا للحد من الحاجة لكتابة الـ namespace في كل مرة نقوم باستخدام الكلمة using و هنا نكتب using System ، و عند كتابتها من جديد ستعود الكلمة System في السطر رقم 9 و 10 إلى اللون الرمادي ، بمعنى أنه ليس من الضروري كتابتها .

الكتابة على ملف File :

لنأخذ الآن مثالاً جديداً على كيفية استخدام Library خارج نطاق الشيء الذي نعمل فيه ، فمثلا في حالة الـ Console الشيء الذي نحتاجه هو الـ System ، و لكن ماذا لو أردنا كتابة text معين في ملف .
هنا يجب أن نستدعي Library الخاصة بعملية الكتابة على الملفات ، سنذهب إلى المتصفح للحصول على مثال موجود مسبقاً لنكتب في Google ” How to write to a text file C# ” سنلاحظ الكثير من النتائج التي ستظهر لدينا ، من بينها مجموعة الصفحات الخاصة بـ Microsoft ، و سنجد في هذه الصفحة 3 طرق للكتابة على file ، لنأخذ المثال الثاني هنا .

        // Example #2: Write one string to a text file.
        string text = "A class is the most powerful data type in C#. Like a structure, " +
                       "a class defines the data and behavior of the data type. ";
        // WriteAllText creates a file, writes the specified string to the file,
        // and then closes the file.    You do NOT need to call Flush() or Close().
        System.IO.File.WriteAllText(@"C:\Users\Public\TestFolder\WriteText.txt", text);


نلاحظ في السطر رقم 14 أنه يقوم باستخدام namespace اسمه System.IO لكي يستدعي الـ File و الدالة التي تقوم بكتابة النص على الـ File .
سنأخذ القسم System.IO و نقوم بوضعه في الأعلى إلى جوار الكلمة using ليصبح

Using System.IO;

ثم قمنا بحذف القسم من الدالة في الأسفل ، سنلاحظ عدم ظهور أي مشكلة ، و بالتالي يمكننا التعامل مع الدالة بدون مشاكل ، سأقوم بتغيير الـ path للـ File لنرى الناتج الذي سيظهر على الملف ، إذا عندما أقوم بعمل تشغيل للبرنامج ، و أذهب إلى المسار الذي وضعته هنا سأجد أنه قام بكتابة النص الموجود في المتغير text على الملف النصي .

تحويل صفحة إنترنت إلى نص وتخزينه

لنأخذ مثالاً آخر لكيفية عمل تنزلي لصفحة إنترنت و تحوليها إلى text و كتابته على الـ File ، لنذهب إلى المثال الآخر ، و الموجود أيضاً على صفحة Microsoft (C) ، يمكنكم البحث عن “How to download HTML as string” ، سنجد مثالاً في الأسفل ، لنأخذه و نضعه في المحرر الخاص بنا ، سنجد مثالاً في الأسفل ، لنأخذه و نضعه في المحرر الخاص بنا :

public static void DownloadString (string address)
{
    WebClient client = new WebClient ();
    string reply = client.DownloadString (address);

    Console.WriteLine (reply);
}

نلاحظ بمجرد عمل لصق للمثال ، يظهر لدينا مشكلة ، و ذلك لأن النوع WebClient غير معرف لدينا ، حيث أن الـ Compiler لم يقم بالتعرف على هذه الكلمة . و إذا وضعت مؤشر الماوس على الكلمة ، ستجد أن الـ namespace غير موجود ، و نلاحظ ظهور مصباح ذو لون أصفر أسفل الكلمة ، و بالضغط عليه سيعطينا خيارات لإصلاح هذه المشكلة ، نلاحظ أنه قام بتقديم حلين ، إما أن تقوم بكتابة using System.Net; أو أن تقوم بكتابة الـ namespace كاملاً في هذا السطر.

لنتفادى المشكلة سنقوم بعمل إضافة using System.Net; في الأعلى ، و ذلك بالضغط على الاقتراح الذي قام البرنامج بتقديمه. و عندها ستصبح باللون الأخضر ، و ذلك دلالة على أنها أصبحت معرفة لدى الـ Compiler .

سنقوم الآن باستبدال كلمة Address بالرابط الذي نريد نسخه ، و سنقوم بكتابة الناتج على الـى File
و عندما نقوم بتشغيل التطبيق ، و نذهب إلى الملف سنلاحظ أنه قام بطباعة كامل الصفحة كـ HTML

إذاً تعرفنا في هذا الدرس كيف يمكننا استخدام كلمة using ، و كيف يمكننا استدعاء أي Method نريد استخدامها سواء بكتابة الاسم الكامل لها أو كتابتها في القسم الأول (استدعاء المكتبات أو الـ Assemblies التي نريد استخدامها ) في مشروعنا .

post

#6 فهمُ التطبيقِ الأول – البرمجة بواسطة #C

رمز فتح مرحلة هذا الدرس في تطبيق طورني : LPC

تَعلُمُ البرمجةِ للمبتدئينَ كلياً بواسطةِ #C –  فهمُ التطبيقِ الأول

لماذا قمنا بكتابةِ ذلك؟

السلامُ عليكم ورحمةُ اللهِ وبركاته، وأهلاً بكمْ في الدرس السادس من دروسِ سلسلةِ، تَعلُمِ البرمجةِ للمبتدئينَ كلياً بواسطةِ السي شارب، في البدايةِ أودُ الإشارةَ إلى منتدى منصةِ طورني، حيثُ أودُ شكرَ كلِّ الأعضاءِ الذينَ أثروهُ بمواضيعهم، وأطلبُ منكَ زيارتَهُ في حالِ احتياجكَ لأيِّ مساعدة، ففيهِ الكثيرُ ممنْ يودونَ مساعدتك.

في هذا الدرسِ سنقومُ بالتعرفِ أكثر، على الأسطرِ البرمجيةِ التي كتبناها في تطبِيقِنا الأول، سابقاً كنْتُ أريدُ مِنكَ التركيزَ على، ماذا كتبنا وكيفيةِ الكتابة، لكنْ الآن سنقومُ بالتركيزِ على لماذا قُمنا بكتابةِ ذلك، وبما أننا قُمنا بالتعرفِ على بعضِ قواعدِ الكتابة، ستكونُ متهيئاً لكافةِ المعلوماتِ التي سنتعلمها في هذا الدرس.

إجادة لغات البرمجة :

عندما تنوي تعلمَ تطويرِ التطبيقات، وبعدَ اختياركَ للغةِ البرمجةِ التي ارتحتَ لها، أنتَ بحاجةٍ إلى التعرفِ على قسمينِ أساسيينِ لإجادةِ هذهِ اللغة، فمعرفتكَ لأسماءِ وأفعالِ الأسطرِ البرمجية، أو ما يُطلقُ عليهِ اسمُ الـ Syntax، هو فعلياً القسمُ الأولُ مِنَ الموضوع، أما القسمُ الثاني، فهو مَعرفةُ الكلماتِ المحجوزةِ الـ Keywords المعدّةِ مسبقاً، والتي تكونُ متاحةً للاستخدامِ في كتابةِ تطبيقك.

وتقدمُ لنا شَركةُ Microsoft شيئاً يدعى Dot Net Framework ، الذي يُقدمُ مَجموعةً مِنَ المكوناتِ لتسهيلِ عمليةِ التطوير، وسنقومُ بشرحِ بعضٍ مِنْ مُكوناته، بما يتناسبُ مَع مُستوى هذهِ السلسلة، فالعنصرُ الأولُ هوَ المكتباتُ البرمجية Class Library، حيثُ قامتْ الشركةُ بكتابةِ العديدِ مِنَ المكتباتِ البرمجية، التي يَحتاجُها تَطبيقنا بشكلٍ أساسي، مِثلَ التعاملِ مَعَ المعادلاتِ الرياضية، والتعامُلِ مع النصوصِ، والتعاملِ مع التاريخِ والوقتِ، وإظهارِ المعلوماتِ على الشاشة، وأمورٍ كثيرةٍ سنتعرفُ عليها مُستقبلاً، كل هذهِ المكتباتِ كانَ منَ الصعبِ علينا كتابتُها، خصوصاً أنها أساسيةٌ في كلِّ تطبيق.

والمُكونُ الثاني مِنْ مُكوناتِ الـ .Net Framework هو ، الـ Runtime والمعروفُ بـ CLR، المختصرُ مِنَ المصطلحِ Common Language Runtime، ويمكنَ تشبيهَهُ بالفقاعةِ التي تُحيطُ بتطبيقَك، حيثُ يعيشُ تطبيقُكَ داخلَ هذهِ الفقاعةِ وتقومُ بحمايته، وتتكفلُ بالعديدِ منَ التفاصيلِ ذو المستوى المتدني Low Level، لتدعكَ تركزُ بشكلٍ أساسيٍ على هدفِ التطبيق، ولا تقلقْ بشأن أمورٍ مثلِ نوعِ نظامِ التشغيلِ، أو إدارةِ الذاكرةِ المستخدمة Memory Usage، أو حتى بطريقةِ التعاملِ مع الملفاتِ في القرصِ الصلب، وفي نفسِ الوقت، يقوم الـ CLR، بتقديمِ طبقةِ حمايةٍ للزبونِ نفسه، حيثُ يَمنعكَ كمطورٍ للتطبيقاتِ بالحصولِ على معلوماتهم الخاصة، أو بالعبثِ بأجهزتهم دونَ أخذِ إذنٍ مسبقٍ منهم، حيثُ تظهرُ رسالةٌ للزبونِ تخبرُهُ أنكَ تحتاجُ هذهِ الصلاحية.

الدوال Methods :

بعدَ المقدمةِ البسيطةِ حول الـ .Net Framework ، نعودُ لتطبيقنا الأول، حيثُ ستجدُ في السطرِ الثالثِ عشرْ أننا استخدمنا مكتبةً برمجية، تقومُ بطباعةِ نصٍ على الشاشة، وقمنا بإعطائهِ النصْ بينَ علامتي تنصيص،  فنحنُ لا نهتمُ بكيفيةِ القيامِ بهذا الأمر، بل نهتمُ بالنتيجة، لاحظْ أننا في هذا السطرِ قمنا باستخدامِ داله Method، قام بكتابتها شخصٌ منْ شركة Microsoft، لأخذِ جملةٍ وطباعتِها على الشاشة، وفي السطرِ الـرابعِ عشر أخبرنا التطبيقَ أنْ ينتظر، بواسطة الكلمة المحجوزة ReadKey، لكي يقومَ المستخدمُ بإدخالِ حرفٍ قبل إنهاءِ التطبيق، وسببُ وضعِ هذهِ الجملةِ أننا نريدُ رؤيةَ نتيجة الطباعة في الجملة السابقة، وفي حال لم تَضعْها فسيطبعُ التطبيقُ الجملة، وسيصلُ إلى نهايةِ التطبيقِ ويخُرجُ منه، دونَ أن يسمحَ لكَ برؤيةِ النتيجة.

 جمل الملاحظات Comment : 

ولرؤيةِ ذلكَ قمْ بجعلِها جملةَ ملاحظة Comment، وذلكَ بكتابةِ // قبلَ بدايةِ السطر،  وتعني أنَّ التطبيقَ لن يقومَ بتنفيذِ هذهِ الجملةَ وسيتجاهلها، بإمكاننا حذفُ هذا السطرِ نهائياً، لكنْ ربما نحتاجهُ لاحقاً، ولا داعي لكتابتهِ منْ جديد، وجُمَلُ الملاحظاتِ تتعدى هذهِ الميزةِ بميزاتٍ أخرى، فتستطيعُ مِنْ خِلالها كتابةَ ملاحظاتٍ لفقرةٍ برمجية، لتتذكرَ وظيفتها بالضبط، وتكونُ مذكَّرَةً لكَ في حالِ عودتكَ بعدَ فترةٍ منَ الزمن، أو تكونُ شَرحاً لشخصٍ آخرٍ يريدُ التعديلَ على أسطركَ البرمجية.

إن حاولتَ تنفيذَ التطبيق الآن، ستجدُ أنَّ هناكَ شاشةً ظهرتْ ثم اختفتْ بسرعة، وذلكَ لأن التطبيقَ قامَ بتنفيذِ الأسطرِ على التوالي، فقامَ بطباعةِ الجملةِ ثم وصلَ إلى نهايةِ التطبيق، وخرجَ من التطبيقِ ليعودَ مرةً أخرى إلى برنامج الـ Visual Studio، أما إن تراجعنا عنْ جملةِ الملاحظة،  وقمنا بتشغيلِ التطبيق، سنرى جملةَ Hello World، وسينتظرُ البرنامجُ مِنَّا إدخالَ أيِّ حرفٍ لينتهي مِنَ التطبيق، ويَجدرُ بالذكرِ أنَّ هناكَ كلمةً مرادفةً لـ ReadKey، إلا وهي ReadLine، وتقومُ بانتظارِ مدخلاتٍ ثم زر Enter، حيثُ لو قمنا باستبدالها الآن، وقمنا بتشغيلِ التطبيق، يمكننا كتابةُ الكلماتِ التي نريد، ويجبُ أن ننهِيَها بزرِّ الإدخال Enter منْ لوحةِ المفاتيح.

القطع البرمجية Code Block :

في درسنا السابق تعرفنا بشكل بسيط، على مفهوم الـ Code Block، وتعرفنا أنها عبارةٌ عنْ قطعةٍ برمجيةٍ تبدأُ بقوسٍ وتنتهي بآخر، وفي هذا التطبيقِ هناكَ العديدُ مِنَ القطعِ البرمجية، و تحملُ القطعةُ البرمجيةُ غالباً اسماً، ففي مثالنا هنا، هذهِ القطعةُ البرمجيةُ تحملُ اسم Main، وهذهِ القطعةُ البرمجيةُ تُسمى داله Method، ومن المتعارفِ عليهِ أنَّ الـ Main Method، هيَ الدالةُ التي يَبدأُ بها التطبيقُ في كلِّ مرةٍ تَقومُ بتشغيله، ولا أريدكَ أنْ تقلقَ بشأنِ الكلماتِ الموجودةِ قبلَ كلمةِ Main، لأننا سنتكلمُ عنها لاحقاً إن شاء الله، ولو لاحظتَ معي أيضاً، أنَّ الـ Main Method موجودةٌ داخلَ قطعةٍ برمجيةٍ أخرى، اسمها Program وهي من النوع Class، وهي المكانُ الذي سيحوي كلَّ الـ Methods التي سنكتُبُها لاحقاً، ولهُ الكثيرُ من الخصائِصِ والميزاتِ التي سنتكلمُ عنها لاحقاً، وستلاحظُ أيضاً أن الـ Class موجودٌ في قطعةٍ برمجيةٍ أخرى، اسمها HelloWorld وهي مِنَ النوع namespace، وهيَ الحاويةُ لجميعِ الـ Classes الموجودةِ بداخلِ برنامجك، وستجدُ أنَّ اسمَها مُطابقٌ لاسمِ المشروعِ الذي أنشأناه سابقاً.

لو لاحظت في تطبيقنا الأول، أننا قمنا باستدعاءِ مكتبات Classes، واستخدمنا بعضَ الدوالِ Methods الموجودةِ ضِمنها، فقدْ قمنا باستدعاءِ الـ Console Class، واخترنا الـ WriteLine Method منه، فبمجردِ كتابةِ اسم الـ Class وإتباعهِ بنقطه، سترى جميعَ الـ Methods المتوفرةِ بداخله، وهذه النقطةُ Dot بعد اسم الـ Class، تَعملُ عَمَلَ فهرس الكتابِ الذي يسمحُ لكَ بمعرفةِ الوحداتِ الموجودةِ فيه، ويطلقُ عليها اسم Member Accessor، ونلاحظُ أنَّ جميعَ الدوال Methods، تبدأ بقوسٍ وتنتني بآخر، وبعضُها تحتوي على قيمٍ بداخلِ الأقواسِ كما WriteLine، تستخدمها الدالةُ في إجراءِ وظيفتها، وبعضها الأخرْ لا يحتاجُ لتلكَ القيمِ مثل ReadLine، وسنقومُ لاحقاً بالحديثِ أكثرَ عنْ هذهِ القيمِ التي تتواجدُ بينَ الأقواس، وكلْ ما عليكَ معرفتهُ الآن، هو أنَّ استدعاءَ الدالةِ يتمُّ بذكِرِ اسمها وكتابةِ أقواسها، وإعطاءِها قيماً إنْ كانتْ تَحتاجُ ذلك.

كما تحدثنا في الدرسِ السابقِ بخصوصِ الفاصلةِ المنقوطة، أنها كقواعدِ كتابةِ الجملِ في اللغةِ العربية، تأتي في نهايةِ الجملةِ البرمجيةِ لتخبرَ البرنامِجَ أنَّ هذا السطرَ قدْ انتهى، فكما رأينا سابقاً أننا لو قمنا بوضعِ السطرينِ في سطرٍ واحد، فلن يحدثَ أي مشكلة، وبالمثلِ أيضاً، إن قُمتَ بتقسيمِ الجملةِ إلى عدةِ أقسامٍ، فلن يحدثَ أيُّ مشكلةٍ أيضاً، والشيءُ المهمُ هنا أنْ تنتهي الجملةُ البرمجيةُ بالفاصلةِ المنقوطة، والجميلُ بالأمرِ أنكَ إنْ تركتَ مسافاتٍ زائدة، فإن برنامجَ الـ Visual Studio وبمجردِ وضعِ الفاصلةِ المنقوطة، سيقومُ تلقائياً بترتيبِ السطرِ بشكلٍ متناسق، ولذلك لتسهيلِ عمليةِ قراءةِ البرنامجِ بشكلٍ أفضل، فضلاً عن أنَّ البرنامجَ قامَ بوضعِ ألوانٍ متنوعة، حسَبَ نوعِ الكلمة، وذلكَ لتَسهُلَ عليكَ القراءةُ أيضاً، وهذا ما سوفَ نتعرفُ عليهِ في الدروسِ المقبلةِ. أراك في الدرسِ التالي إن شاء الله.

مصطلحات الدرس :

Syntax : التركيب الإصطلاحي للسطر البرمجي، أو منطق السطر البرمجي الواحد
Class Library : مجموعة من الدوال Methods التي تقوم بأعمال معينة تحت حاوية واحدة ألا وهي الـ Class
Dot Net FrameWork : المكون الرئيسي الذي يعتمد عليه برنامج Visual Studio ويتكون من العديد من الطبقات الخدمية
Keywords : كلمة محجوزة
Runtime : المعروف أيضاً بالمختصر CLR  القادم من Common Language Runtime وهو وسيط بين أسطرك البرمجية وبين لغة الآلة
Low Level : مستوى متدني وهنا نستخدمه للدلالة على لغة الآلة Assembly Language
Memory Usage : إدارة حجم الذاكرة المستخدمة
Method : دالة تحتوي على مجموعة من الأسطر البرمجية التي تقوم بوظيفة معينة
ReadKey : تقوم بقراءة حرف من لوحة المفاتيح
Double Slash :  // يتم إستخدامها لتحويل السطر البرمجي إلى سطر ملاحظة غير قابل التنفيذ
ReadLine : تقرأ جملة كاملة بشرط أن تنتهي بزر الإدخال Enter
Code Blocks : قطعة برمجية تحتوي على أسطر برمجية تبدأ بقةس وتنتهي بآخر وفي بعض الأحيان تحمل إسم
Main Method : الدالة الرئيسية التي يبدأ تنفيذ التطبيق منها ( يمكن تغييرها لاحقاً )
Program : البرنامج أو التطبيق الذي تقوم بتطويره
NameSpace : مكتبة ومجموعة من ال Classes التي تؤدي وظائف مختلفة
Class : مجموعة من الدوال Methods تحتوي على أسطر برمجية تؤدي وظائف معينة
Console : شاشة سوداء تقوم بطباعة أسطر متتالية وتتميز ببساطتها وقوة أداءها
Member : عضو ، لكن المقصود بها هنا هو جميع التوابع الخاصة بدالة أو ب Class أو ب Namespace معين
Member Accessor : وهي أداة ال النقطة ( . ) حيث بمجرد وضعها يقوم برنامج Visual Studio من خلال ال Intellisense بعرض جميع المحتويات الداخلية
WriteLine : دالة Method تقوم بطباعة سطر كامل ثم تنزل سطر جديد