لا تبقى الأشياء على حالها.. ما هي أبرز ميزات C# 9 وما هو الجديد فعلاً؟

0

لطالما كانت لغة سي شارب #C واحدة من أشهر وأهمّ لغات البرمجة عالية المستوى حول العالم في مختلف المجالات كتطبيقات الإنترنت والتطبيقات المكتبية على سبيل المثال، ويعمل القائمين على هذه اللغة بشكل مستمرّ لتطويرها وتصحيح أي أخطاء أو مشاكل فيها لتصبح أسهل وأكثر ملائمة لاحتياجات جميع المبرمجين، كما انها لغة مفتوحة المصدر open source وبإمكان الجميع اقتراح تعديلات وتحسينات والمشاركة في تطويرها نحو الأفضل، وفي هذا السياق سنقدّم لكم أهم مقترحات و ميزات C# 9 لجيمع المهتمين فتابعوا معنا.

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

نمط الإعادة المتغير

تلزم لغة #C المبرمجين بنوع الإعادة Return Type إلى الصف الرئيسي أو الأساسي Base Class بشكل صريح بالنسبة للطرق المشتقة وهذا ماكان يتطلّب جهداً إضافياً على المبرمج ليجد طريقة جديدة أو طرائق Methods للإعادة الصحيحة والمقبولة وهذا يؤدي إلى تعقيد الكود البرمحي والاقتراح الجديد يدعم أنواع الإعادة المتغيّرة Covariant Return Types بحيث تكون الإعادة إلى نوع أضيق ضمن الصفف الأب، الإعادة إلى الصف الرئيسي بشكل صريح كما في المثال:

ميزات C# 9

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

اقرأ أيضًا: مهندس برمجيات بتعليم رسمي أم فنّي برمجة بمهارة عالية؟ ما هي المشكلة وما هو الخيار الأفضل؟

NEW جديدة

غالباً ما تكون الكلمة المفتاحية var وسيلة المبرمجين لتجنّب الخوض في تعريف نمط المتحولات بشكل صريح، وبشكل مشابه فإنّ أحد ميزات C# 9 الجديدة المقترحة استخدام جديد للكلمة المفتاحية new إذ تعوّض هذه الكلمة عن مواصفات النمط المستخدم في التوابع البانية عندما يكون النمط معرّفاً مسبقاً، وعلى سبيل المثال هذا المقطع البرمجي عن مجموعة معقّدة وستقوم بالتهيئة عند التصريح:

بما أنّنا ضمن التصريح فالغرض words واضح أنه من الصف Dictionary ولا حاجة للتكرار وكذلك النمط <List<string معروف بشكل مسبق وهذا الاختصار هو عمل الميزة الجديدة فاستخدام new لوحده كافٍ، فالمثال السابق يصبح كالآتي:

اختبار Null مختصر

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

اقرأ أيضًا: المبرمجون والقهوة، علاقة أزلية متينة بدأت منذ سنوات طويلة واستمرت حتى يومنا هذا!

ولهذا السبب واختصاراً للكود أصبح بإمكانك التخلص من اختبارات Null الصريحة بالإضافة للحدّ من مخاطر عبارات if المتداخلة فالاقتراح الجديد يسمح إضافة إشارة ! إلى الباراميتر، والمترجم يقرأ هذه الإشارة على أنها تعني “قيمة هذا الباراميتر لا يمكن أن تكون Null”، فسابقاً كان تتمّ الاختبارات بالشكل التالي:

ووفقاً للاقتراح الجديد يصبح الكود السابق على الشكل التالي:

دع العمل للباني

هذا الاقتراح قائم ومطروح للنقاش منذ الإصدار السادس للغة سي شارب C# 6 وهذه الميّزة موجودة في غيرها من اللغات مثل Kotlin و Typescript، تقوم هذه الميّزة بجعل التابع الباني يبني حقول البيانات الخاصة الممرّرة في الترويسة بشكل ضمني بدلاً من الكتابة الصريحة كما في المثال إذ لدينا متغيرين خاصين private وللقراءة فقط readonly:

ميزات C# 9

المقترح الجديد يجعل التابع الباني يتكفّل ببناء حقول البيانات الخاصّة ذاتياً كما في المثال:

السجلات لجعل اللغة أكثر سهولة

السجلات هي شكل مبسط للصفوف والبنى والتعامل معها أسهل وأبسط كتعبير with وباراميترات المستدعي caller والمتلقي receiver والمثال كما في الصورة:

ميزات C# 9

واستخدام الكلمة المحجوزة with التي تسمح إنشاء نسخ وأغراض من الصف بسهولة:

ستدعم السجلات أيضاً استخدام النمط الموضعي positional المطابق لاستخدام الهادم:

تعليمة التبديل Switch

أحد أهم ميزات C# 9 الجديدة المقترحة هي عبارة التبديل Switch التي اختبرناها في لغات أخرى كثيرة كلغة ++ C ولغة فيجوال Visual basic وهي تعليمة مفيدة مختصرة عن تعليمات if المتداخلة وأسرع منها، تقوم باختبارات متعدّدة لشروط عدّة كالمثال الواضح في الصورة حيث يمكنك اختبار حالة المتغير internalTemperature الذي يعبر عن حرارة الطعام بالفهرنهايت، فالحالة الأولى نادرة جداً.

اقرأ أيضاً: لغات البرمجة الجديدة… حان الوقت لاستبدال ++C المعقدة بلغات برمجية أبسط وأجمل!

ميزات C# 9

اقرأ أيضاً: أفضل 5 كتب لتعلم لغة C#


ما هو رأيك صديقي المبرمج حول هذه المقترحات وهل تجد أنها فعلاً تلبي متطلبات المبرمجين وتسهل العمل أمامهم؟ وهل لديك أي مقترحات أخرى؟ فلتشاركنا بها في التعليقات.

0

شاركنا رأيك حول "لا تبقى الأشياء على حالها.. ما هي أبرز ميزات C# 9 وما هو الجديد فعلاً؟"