C#: مقدمة إلى لغة C#

إذا سبق لك أن لعبت بمكعبات البناء، فأنت تفهم بالفعل جوهر البرمجة — وهو دمج القطع البسيطة لتشكيل هياكل معقدة. ولغة C# هي بالضبط هذا النوع من «مكعبات البناء»: فهي تتميز ببناء جمل برمجية واضح، وتتمتع بأمان الأنواع، وقوة الأداء، مما يتيح لك إنشاء تطبيقات ذات مستوى احترافي منذ السطر الأول من الكود.

1. ما هو لغة البرمجة C#؟

C# (تُنطق «سي شارب») هي لغة برمجة موجهة للكائنات طورتها شركة مايكروسوفت في عام 2000، بقيادة المصمم الرئيسي أندرس هيلسبيرغ، وتم إصدارها رسميًا في عام 2002. يُشير الحرف # في اسمها إلى ترتيب أربعة أحرف +، مما يوحي بأنها تتقدم بخطوة واحدة عن لغتي C/C++.

تعمل لغة C# على منصة .NET، حيث يتم ترجمتها وتنفيذها بواسطة CLR (بيئة تشغيل اللغة المشتركة)، مع دعم غني لواجهة برمجة التطبيقات (API) من FCL (مكتبة فئات الإطار). وببساطة:

المكون الدور التشبيه
لغة C# قواعد بناء الجمل في كتابة الكود دليل قيادة السيارة
CLR يقوم بتجميع البرامج وتشغيلها محرك السيارة
FCL يوفر وظائف جاهزة مستودع قطع غيار السيارات
.NET SDK مجموعة أدوات التطوير مصنع السيارات بأكمله

2. لماذا نتعلم لغة C#


3. ما يمكن أن تفعله لغة C#

المجال المجموعة التقنية الوصف
تطوير الألعاب Unity + C# يُعد Unity محرك الألعاب الأكثر شهرةً في العالم، ويستخدم لغة البرمجة C# كلغة برمجة
تطبيقات الويب ASP.NET Core واجهات برمجة تطبيقات الويب عالية الأداء ومواقع الويب التي تعمل بنظام MVC
تطبيقات المؤسسات .NET + EF Core أنظمة الأعمال الكبيرة مثل ERP و CRM
تطبيقات الجوال .NET MAUI / Xamarin قاعدة كود واحدة تعمل على كل من أندرويد وiOS
تطبيقات سطح المكتب WPF / WinForms برامج سطح المكتب الأصلية لنظام ويندوز
الخدمات السحابية Azure + C# اللغة المفضلة في منظومة مايكروسوفت السحابية
إنترنت الأشياء (IoT) والأنظمة المدمجة .NET nanoFramework تشغيل لغة C# على الميكروكونترولرات
التعلم الآلي ML.NET إطار عمل التعلم الآلي الأصلي لـ .NET

4. الميزات الرئيسية للغة C#

(1) أمان الأنواع

لغة C# هي لغة ذات أنواع محددة بشكل صارم. يقوم المُترجم بالتحقق من تطابق الأنواع قبل تشغيل البرنامج، مما يمنع حدوث فئة كبيرة من أخطاء وقت التشغيل.

▶ مثال

CSHARP
int age = 25;
string name = "C#";
age = name;
▶ جرّب الكود

يؤدي هذا إلى ظهور خطأ في وقت التحويل البرمجي — لا يمكن تعيين قيمة string إلى متغير int:

TEXT 📖 للعرض فقط
error CS0029: Cannot implicitly convert type 'string' to 'int'

(2) البرمجة الموجهة للكائنات

لقد كانت لغة C# موجهة للكائنات منذ بدايتها، حيث تدعم الركائز الثلاث الأساسية المتمثلة في التغليف، والوراثة، والتعدد الشكلي. فكل شيء هو كائن.

▶ مثال

CSHARP
class Animal
{
    public string Name { get; set; }
    public virtual void Speak() => Console.WriteLine($"{Name} makes a sound");
}

class Dog : Animal
{
    public override void Speak() => Console.WriteLine($"{Name} says: Woof!");
}

var dog = new Dog { Name = "Buddy" };
dog.Speak();
▶ جرّب الكود
TEXT 📖 للعرض فقط
Buddy says: Woof!

(3) متعدد المنصات

لقد وحدت منصة .NET 5+ بين الإصدار القديم من .NET Framework (لنظام Windows فقط) و.NET Core (متعدد المنصات). وأصبح الآن من الممكن تشغيل قاعدة برمجية واحدة على أنظمة Windows وLinux وmacOS.

(4) تطور قواعد اللغة الحديثة

تصدر لغة C# إصدارًا رئيسيًّا كل عامين تقريبًا، وتستمر في تبني ميزات لغوية حديثة مثل البرمجة الوظيفية، ومطابقة الأنماط، والبرمجة غير المتزامنة، وذلك للحفاظ على حيوية اللغة.


5. نبذة تاريخية عن لغة C#

الإصدار سنة الإصدار الميزات الرئيسية
C# 1.0 2002 مبادئ البرمجة الكائنية الأساسية، الفئات، الواجهات، المندوبون
C# 2.0 2005 الأنواع العامة، والأساليب المجهولة، والأنواع القابلة للقيمة «null»
C# 3.0 2007 LINQ، تعبيرات لامدا، طرق التمديد، الخصائص التلقائية
C# 4.0 2010 الربط الديناميكي، المعلمات المسماة، التباين/التباين العكسي
C# 5.0 2012 البرمجة غير المتزامنة باستخدام async/await
C# 6.0 2015 الاستيفاء السلسلي، عامل الشرط القيم «null»، مرشحات الاستثناءات
C# 7.0 2017 مطابقة الأنماط، المجموعات، الدوال المحلية
C# 8.0 2019 أنواع المراجع القابلة للقيمة الفارغة، تدفقات غير متزامنة، طرق الواجهة الافتراضية
C# 9.0 2020 أنواع السجلات، العبارات ذات المستوى الأعلى، واصلات الوصول init
C# 10.0 2021 استخدام «using» عالمي، مساحات الأسماء المحددة بنطاق الملف، إدراج السلاسل الثابتة
C# 11.0 2022 القيم الثابتة للسلاسل الأولية، وأنماط القوائم، والمُعدِّل الإلزامي
C# 12.0 2023 منشئات أولية، تعبيرات المجموعات، المصفوفات المضمنة

6. تطور منظومة .NET

الحقبة الاسم الوصف
2002—2019 .NET Framework نظام التشغيل Windows فقط، حتى الإصدار 4.8، لم تُضاف أي ميزات جديدة
2016—2019 .NET Core إعادة كتابة البرنامج ليتوافق مع منصات متعددة، من الإصدار 1.0 إلى 2.0 إلى 3.1
2020 .NET 5 دمج .NET Core و Mono، مع تخطي الإصدار 4 لتجنب الالتباس
2021 .NET 6 أول إصدار موحد يدعم الدعم طويل الأمد (LTS)
2022 .NET 7 إصدار STS (الدعم القياسي المحدود المدة)
2023 .NET 8 الإصدار الثاني من الإصدارات طويلة الأمد (LTS)، موصى به للاستخدام في بيئات الإنتاج
2024 .NET 9 أحدث إصدار من STS
💡 نصيحة: بالنسبة للمشاريع الجديدة، يُفضل استخدام .NET 8 LTS. إذا كنت ترغب في الحصول على أحدث الميزات، فجرب .NET 9. تجنب استخدام .NET Framework ما لم تكن تعمل على صيانة مشاريع قديمة.


7. لغة C# مقارنةً باللغات الأخرى

ميزة C# Java C++ Python
نظام الأنواع أنواع محددة بدقة، مع استدلال الأنواع أنواع محددة بدقة، أكثر تفصيلاً أنواع محددة بدقة، أكثر تعقيدًا أنواع ديناميكية
التنفيذ مُجمَّع بواسطة JIT مُجمَّع بواسطة JIT مُجمَّع أصليًّا مُفسَّر
الأداء مرتفع مرتفع الأعلى أقل
تطور الصيغة سريع (إصدار جديد كل سنتين) بطيء (إصدار جديد كل 3–4 سنوات) مستقر معتدل
متعدد المنصات .NET 5+ JVM يتطلب إعادة التجميع دعم أصلي
تطوير الألعاب الخيار الأول في Unity LibGDX، وغيرها الخيار الأول في Unreal البرمجة النصية/الأدوات المساعدة
إدارة الذاكرة التجميع التلقائي التجميع التلقائي يدوي التجميع التلقائي
صعوبة التعلم متوسطة متوسطة عالية منخفضة
⚠️ تحذير: تتميز لغتا C# وJava ببنية لغوية متشابهة جدًّا، لكن لغة C# تتطور بوتيرة أسرع وتتميز بميزات مثل LINQ وasync/await والخصائص وتحميل المشغلات الزائد، وهي ميزات طالما افتقرت إليها لغة Java. وبالمقارنة مع لغة C++، تضحي لغة C# ببعض الأداء القصوى مقابل الأمان وإنتاجية المطور. وبالمقارنة مع لغة Python، فإن لغة C# هي لغة مُجمَّعة وذات أنواع بيانات صارمة، مما يسهل صيانتها في المشاريع الكبيرة.


8. برنامجك الأول بلغة C#

▶ مثال

باستخدام العبارات ذات المستوى الأعلى التي أُضيفت في C# 9.0، لن تحتاج سوى إلى سطر واحد:

CSHARP
System.Console.WriteLine("Hello, World!");
▶ جرّب الكود
TEXT 📖 للعرض فقط
Hello, World!

▶ مثال

النهج التقليدي الذي يستخدم نقطة دخول الأسلوب Main (النمط القياسي قبل الإصدار C# 9.0):

CSHARP
using System;

namespace HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}
▶ جرّب الكود
TEXT 📖 للعرض فقط
Hello, World!
💡 نصيحة: كلا الأسلوبين متطابقان من الناحية الوظيفية. يُفضل في المشاريع الجديدة استخدام العبارات ذات المستوى الأعلى حرصًا على الإيجاز. ويساعد فهم الأسلوب التقليدي في قراءة الكود القديم وتعلم الهياكل الموجهة للكائنات.


9. كيفية إتقان لغة C#


❓ أسئلة شائعة

س ما هي العلاقة بين لغة C# و.NET؟
ج لغة C# هي لغة البرمجة؛ أما .NET فهي منصة التشغيل. يتم ترجمة كود C# وتشغيله على CLR الخاص بـ .NET، تمامًا مثلما تحتاج السيارة (C#) إلى طريق (.NET) لتسير عليه.
س هل أحتاج إلى نظام التشغيل Windows لتعلم لغة C#؟
ج لا. يدعم .NET 5+ نظامي التشغيل Linux و macOS، ويوفر لك كل من VS Code و C# Dev Kit بيئة تطوير كاملة متعددة المنصات.
س ما الفرق بين .NET Framework و.NET 8؟
ج .NET Framework هو الإصدار الأقدم المخصص لنظام Windows فقط، ولم يتم تطوير أي ميزات جديدة له. أما .NET 8 فهو الإصدار الحديث متعدد المنصات ذو الدعم طويل الأمد (LTS)، والموصى به لجميع المشاريع الجديدة.
س هل لغة C# في Unity هي نفسها لغة C# القياسية؟
ج بناء الجملة متطابق، لكن Unity تعمل على مجموعة فرعية من Mono/.NET Standard، لذا قد لا تكون بعض ميزات C# الأحدث مدعومة بعد. كما توفر Unity مجموعة كبيرة من واجهات برمجة التطبيقات (APIs) الخاصة بالألعاب.

📖 ملخص

📝 تمارين

  1. قم بتثبيت حزمة أدوات تطوير البرامج (.NET SDK)، ثم قم بتشغيل الأمر dotnet new console -n MyFirstApp في نافذة الأوامر، بعد ذلك استخدم الأوامر من المستوى الأعلى لعرض اسمك وتقديم نبذة موجزة عن نفسك
  2. أعد كتابة العبارات ذات المستوى الأعلى من التمرين 1 وفقًا للأسلوب التقليدي Program.Main، وقارن بين الطريقتين
  3. ابحث عن ماهية LINQ (التي أُدرجت في C# 3.0)، ولخص الغرض منها في جملة واحدة
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%