C# Hello World: برنامج تطبيق First Console

⚡ ملخص ذكي

يُعد تطبيق "Hello World" المكتوب بلغة C# أول تطبيق كلاسيكي يعمل في سطر الأوامر، حيث يُعرّف المستخدمين باللبنات الأساسية للغة، بما في ذلك استخدام التوجيهات، ومساحة الاسم، والفئة، ودالة Main، مع طباعة رسالة بسيطة إلى... Windows موجه الأمر.

  • 🖥️ أساسيات وحدة التحكم: يتم تشغيل تطبيق وحدة التحكم في Windows موجه الأوامر وهو المشروع الأول المثالي لتعلم لغة C#.
  • 🧩 تشريح البرنامج: تشكل التوجيهات ومساحة الاسم والفئة وطريقة نقطة الدخول الرئيسية كل برنامج C#.
  • ⌨️ طرق الإخراج: تقوم الدالة Console.Write بطباعة النص على نفس السطر، بينما تقوم الدالة Console.WriteLine بإضافة سطر جديد بعده.
  • 🛠️ قم بالبناء والتشغيل: يقوم برنامج Visual Studio بتجميع البرنامج وتشغيله، أو يقوم dotnet CLI بنفس الشيء بدون بيئة تطوير متكاملة (IDE).
  • 🔑 نقطة الدخول: يبدأ التنفيذ دائمًا في البرنامج الرئيسي، ويحافظ Console.ReadKey على النافذة مفتوحة حتى يتم الضغط على مفتاح.
  • 🤖 مساعدة الذكاء الاصطناعي: يوفر GitHub Copilot و ML.NET اقتراحات برمجية وتعلم آلي لتطوير C# الحديث.

تطبيق "Hello World" الأول بلغة C#، وهو تطبيق وحدة تحكم.

C# هي إحدى اللغات التي توفرها Microsoft للعمل مع .NET. تتضمن هذه اللغة مجموعة غنية من الميزات، مما يسمح للمطورينping أنواع مختلفة من التطبيقات.

لغة C# هي لغة برمجة كائنية التوجه، وتشبه في جوانب عديدة من C++. في هذا البرنامج التعليمي، نرى كيفية تطوير تطبيقنا الأول.

سيكون هذا تطبيقًا أساسيًا يعمل عبر سطر الأوامر. ثم سنستكشف مختلف الميزات. أنواع البيانات متوفر في لغة C#، بالإضافة إلى عبارات التحكم في التدفق.

بناء أول تطبيق وحدة تحكم

تطبيق وحدة التحكم هو تطبيق يمكن تشغيله في موجه الأوامر في Windowsبالنسبة لأي مبتدئ في .NET، فإن بناء تطبيق وحدة تحكم هو الخطوة الأولى المثالية للبدء.

في مثالنا، سنستخدم Visual Studio لإنشاء مشروع من نوع وحدة التحكم. بعد ذلك، سنستخدم تطبيق وحدة التحكم لعرض رسالة "Hello World". سنرى بعد ذلك كيفية إنشاء تطبيق وحدة التحكم وتشغيله.

لنتبع الخطوات المذكورة أدناه لتطبيق هذا المثال.

الخطوة 1) تتضمن الخطوة الأولى إنشاء مشروع جديد في Visual Studio. وللقيام بذلك، بمجرد تشغيل Visual Studio، عليك اختيار خيار القائمة "جديد" ثم "مشروع".

اختر مشروع جديد في Visual Studio

الخطوة 2) الخطوة التالية هي اختيار نوع المشروع كتطبيق وحدة التحكم. وهنا، نحتاج أيضًا إلى ذكر اسم مشروعنا وموقعه.

اختر نوع مشروع تطبيق وحدة التحكم

  1. في مربع حوار المشروع، يمكننا رؤية خيارات مختلفة لإنشاء أنواع مختلفة من المشاريع في Visual Studio. انقر فوق Windows الخيار على الجانب الأيسر.
  2. عندما نضغط على Windows الخيارات في الخطوة السابقة، سنكون قادرين على رؤية خيار لتطبيق وحدة التحكم. انقر فوق هذا الخيار.
  3. ثم نعطي اسمًا للتطبيق، وهو في حالتنا DemoApplication. نحتاج أيضًا إلى توفير موقع لتخزين تطبيقنا.
  4. وأخيرًا، نضغط على زر "موافق" للسماح لـ Visual Studio بإنشاء مشروعنا.

إذا اتبعت الخطوات المذكورة أعلاه، فستحصل على الناتج أدناه في Visual Studio.

انتاج:-

تم إنشاء مشروع DemoApplication في Visual Studio

  1. سيتم إنشاء مشروع يسمى "DemoApplication" في Visual Studio. سيحتوي هذا المشروع على جميع العناصر الضرورية المطلوبة لتشغيل تطبيق Console.
  2. يُعدّ البرنامج الرئيسي المسمى Program.cs ملف الكود الافتراضي الذي يتم إنشاؤه عند إنشاء تطبيق جديد في Visual Studio. سيحتوي هذا الكود على التعليمات البرمجية اللازمة لتطبيق وحدة التحكم الخاص بنا.

الخطوة 3) والآن دعونا نكتب الكود الخاص بنا والذي سيتم استخدامه لعرض السلسلة "Hello World" في تطبيق وحدة التحكم.

يجب إدخال جميع التعليمات البرمجية أدناه في ملف Program.cs. سيتم استخدام الرمز لكتابة "Hello World" عند تشغيل تطبيق وحدة التحكم.

أدخل كود "Hello World" في ملف Program.cs

برنامج C# مرحبا بالعالم

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Console.Write("Hello World");

   Console.ReadKey();
  }
 }
}

Code تفسير:-

  1. الأسطر الأولى من التعليمات البرمجية هي أسطر افتراضية أدخلها Visual Studio. تُستخدم عبارة "using" لاستيراد وحدات .NET الموجودة في تطبيق وحدة التحكم الخاص بنا. هذه الوحدات ضرورية لتشغيل أي تطبيق .NET بشكل صحيح. وهي تحتوي على الحد الأدنى من التعليمات البرمجية اللازمة لتشغيل التطبيق على Windows آلة.
  2. ينتمي كل تطبيق إلى فئة. لغة C# هي لغة كائنية التوجه، وبالتالي، يجب تعريف جميع التعليمات البرمجية في وحدة مستقلة تُسمى "فئة". بدورها، تنتمي كل فئة إلى مساحة اسم. مساحة الاسم هي ببساطة مجموعة منطقيةping من الفصول الدراسية.
  3. الوظيفة الرئيسية هي وظيفة خاصة يتم استدعاؤها تلقائيًا عند تشغيل تطبيق وحدة التحكم. هنا تحتاج إلى التأكد من إدخال الرمز المطلوب لعرض السلسلة المطلوبة في تطبيق وحدة التحكم.
  4. تتوفر فئة Console في بيئة .NET، مما يسمح بالتعامل مع تطبيقات سطر الأوامر. هنا، نستخدم دالة مدمجة تُسمى 'Write' لكتابة السلسلة النصية "Hello World" في سطر الأوامر.
  5. ثم نستخدم الدالة Console.ReadKey() لقراءة أي مفتاح من وحدة التحكم. بإدخال هذا السطر البرمجي، سينتظر البرنامج حتى يُدخل المستخدم أي مفتاح قبل أن يتوقف. إذا لم تُضِف هذا السطر البرمجي، فسيتوقف البرنامج فور تشغيله.

الخطوة 4) تشغيل الخاص بك برنامج .NETلتشغيل أي برنامج، تحتاج إلى النقر فوق زر البدء في Visual Studio.

قم بتشغيل البرنامج باستخدام زر البدء

إذا تم إدخال الكود أعلاه بشكل صحيح وتم تنفيذ البرنامج بنجاح، سيتم عرض الإخراج التالي.

الإخراج:

تم عرض عبارة "Hello World" في وحدة التحكم

من المخرجات، يمكنك أن ترى بوضوح أن السلسلة "Hello World" معروضة بشكل صحيح. هذا لأن عبارة Console.Write تتسبب في إرسال هذه السلسلة إلى وحدة التحكم.

تشريح برنامج "مرحباً بالعالم" بلغة C#

يتكون كل برنامج نصي مكتوب بلغة C# من مجموعة صغيرة من الأجزاء المتوقعة. إن التعرف عليها يجعل مثال "Hello World" سهل القراءة والتطوير.

  • استخدام التوجيهات: تستورد أسطر مثل `using System;` مساحات أسماء .NET الجاهزة بحيث يمكن استخدام فئاتها دون كتابة المسار الكامل. بدون استخدام `using System`، سيحتاج الكود إلى `System.Console` بدلاً من `Console`.
  • مساحة الاسم: مساحة الاسم هي حاوية منطقية تجمع الفئات ذات الصلة وتمنع تضارب الأسماء. في المثال، DemoApplication هي مساحة الاسم.
  • صف دراسي: كل سطر من ملفات C# القابلة للتنفيذ موجود داخل فئة. يقوم القالب بإنشاء فئة باسم Program لحفظ منطق البرنامج.
  • الطريقة الرئيسية: يُعدّ Main نقطة دخول التطبيق. يبدأ التنفيذ من هنا تلقائيًا، ولا يمكن للبرنامج تحديد سوى نقطة دخول واحدة.
  • ثابت وفارغ: تتيح الكلمة المفتاحية static تشغيل Main دون إنشاء كائن من الفئة، وتعني الكلمة المفتاحية void أن الطريقة لا تُرجع أي قيمة.

معًا، تحوّل هذه الأجزاء بضعة أسطر من النص إلى برنامج قابل للتنفيذ Windows التطبيق.

الفرق بين Console.Write و Console.WriteLine في لغة C#

يستخدم مثال "Hello World" الدالة Console.Write، لكن معظم برامج C# تستخدم أيضًا الدالة Console.WriteLine. كلتا الطريقتين ترسلان نصًا إلى وحدة التحكم، والفرق يكمن فيما يحدث بعد طباعة النص.

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

على سبيل المثال، يؤدي استدعاء Console.Write(“Hello “) متبوعًا باستدعاء Console.Write(“World”) إلى طباعة عبارة "Hello World" في سطر واحد، بينما يؤدي استدعاء WriteLine مرتين إلى طباعة كل كلمة في سطر منفصل. يُعد WriteLine الخيار الأكثر شيوعًا لإخراج البيانات بشكل مقروء سطرًا بسطر، بينما يُفيد Write عند بناء سطر واحد تدريجيًا، مثل طباعة رسالة قبل قراءة مدخلات المستخدم. كلا الطريقتين موجودتان في فئة Console ضمن مساحة اسم System.

كيفية تشغيل تطبيق وحدة تحكم C# باستخدام واجهة سطر الأوامر .NET

لا يُعدّ Visual Studio الطريقة الوحيدة لإنشاء وتشغيل برنامج C#. إذ تقوم واجهة سطر الأوامر (CLI) متعددة المنصات، والمضمنة في .NET SDK، بتجميع وتشغيل تطبيقات وحدة التحكم على Windowsو Linux و macOS بدون بيئة تطوير متكاملة (IDE). وهذا مفيد لإجراء تجارب سريعة، وأتمتة العمليات، وإعدادات خفيفة الوزن مثل... Visual Studio Code.

اتبع هذه الخطوات لإنشاء وتشغيل برنامج "Hello World" من سطر الأوامر:

  1. قم بتثبيت حزمة تطوير البرامج .NET: قم بتنزيل وتثبيت SDK من موقع .NET الرسمي، ثم تأكد من أنه يعمل عن طريق تشغيل الأمر dotnet –version.
  2. إنشاء مشروع: قم بتشغيل الأمر dotnet new console -o DemoApplication. سيؤدي هذا إلى إنشاء مجلد يحتوي على ملف المشروع وملف Program.cs الذي يقوم بالفعل بطباعة رسالة.
  3. انتقل إلى المجلد: قم بتشغيل الأمر cd DemoApplication حتى تعمل أوامر سطر الأوامر على المشروع الجديد.
  4. تشغيل البرنامج: قم بتشغيل الأمر dotnet run. يقوم سطر الأوامر باستعادة التبعيات، وتجميع الكود، وتنفيذه، وطباعة الناتج في الطرفية.
  5. قم بالبناء دون تشغيل: قم بتشغيل الأمر dotnet build عندما تريد فقط تجميع وإنتاج الملف التنفيذي في مجلد bin.

تستخدم قوالب المشاريع الحديثة عبارات من المستوى الأعلى، لذا قد يحتوي ملف Program.cs جديد على سطر واحد فقط، وهو Console.WriteLine(“Hello, World!”)، دون الحاجة إلى تعريف صريح للفئة أو الدالة الرئيسية Main. يقوم المترجم بإنشائها تلقائيًا، مما يُبقي البرامج الصغيرة مختصرة. مع نمو المشروع، يمكنك إضافة الفئات ومساحات الأسماء والدالة الرئيسية Main كما هو موضح سابقًا. ولأن الأوامر نفسها تعمل على جميع أنظمة التشغيل المدعومة، فإن واجهة سطر الأوامر .NET هي الطريقة الأمثل لتشغيل كود C# على أنظمة تشغيل متعددة.

الأسئلة الشائعة

لغة C# هي لغة مُصرّفة. يقوم المُصرّف بتحويل الشيفرة المصدرية إلى لغة وسيطة (IL)، والتي يقوم وقت تشغيل .NET بعد ذلك بتصريفها إلى شيفرة الآلة الأصلية عند التنفيذ باستخدام مُصرّف فوري. يمنح هذا النموذج ذو الخطوتين لغة C# قابلية النقل وأداءً قويًا أثناء التشغيل.

استخدم الدالة Console.ReadLine() لقراءة سطر كامل من النص الذي يكتبه المستخدم، وإعادته كسلسلة نصية. تقرأ الدالة Console.Read() حرفًا واحدًا، بينما تلتقط الدالة Console.ReadKey() ضغطة مفتاح واحدة. للتعامل مع الأرقام، حوّل السلسلة النصية المُعادة باستخدام دوال مثل int.Parse().

لغة C# هي لغة برمجة، بينما .NET هي المنصة التي تعمل عليها. توفر .NET بيئة التشغيل ومكتبات الفئات والأدوات اللازمة لتنفيذ كود C#. تكتب البرامج بلغة C#، وتقوم .NET بتجميعها وتشغيلها على مختلف المنصات. Windowsو Linux و macOS.

يستهدف قالب تطبيق وحدة التحكم (إطار عمل .NET) Windowsيستخدم إطار عمل .NET فقط، بينما يستهدف قالب تطبيق وحدة التحكم (.NET) بيئة .NET الحديثة والمتعددة المنصات. ينبغي على المشاريع الجديدة اختيار قالب .NET، لأنه قيد التطوير النشط، وأسرع، ويعمل على Windowsو Linux و macOS.

لا. على الرغم من أن لغة C# تستعير بعض قواعد اللغة من C++ وكلاهما موجهان نحو الكائنات، فهما لغتان مختلفتان. C++ يتم تجميعها مباشرة إلى التعليمات البرمجية الأصلية وتدير الذاكرة يدويًا، بينما تعمل لغة C# على وقت التشغيل المُدار .NET مع جمع البيانات المهملة التلقائي، مما يجعلها أبسط للمبتدئين.

نعم. تتميز لغة C# ببنية واضحة وسهلة القراءة، وأدوات قوية في Visual Studio، ووثائق مفصلة، ​​مما يُمكّن المبتدئين من بناء تطبيقات سطر الأوامر بسرعة. كما أن تصميمها الموجه للكائنات يُعلّم مفاهيم قابلة للتطبيق على Java, C++وغيرها من اللغات، مما يجعلها نقطة انطلاق قوية.

نعم. يقترح GitHub Copilot كتابة كود C# داخل Visual Studio و Visual Studio Codeبدءًا من برنامج "مرحباً بالعالم" الكامل وصولاً إلى الدوال الفردية. إنه يُسرّع العمليات الروتينيةpingولكن يجب عليك مراجعة مخرجاته، لأن الكود المُنشأ قد يغفل الحالات الشاذة أو يستخدم واجهات برمجة تطبيقات قديمة.

نعم. يقوم ML.NET بتدريب وتشغيل نماذج التعلم الآلي مباشرةً بلغة C#، بينما يقوم ONNX Runtime بتنفيذ نماذج التعلم العميق المدربة مسبقًا. Microsoftتربط مكتبات .Extensions.AI تطبيقات C# بنماذج لغوية كبيرة، لذا تتناسب الميزات الذكية بشكل طبيعي مع نظام .NET البيئي.

تلخيص هذه التدوينة بـ: