كيف يمكن لمتغير برمجي ان يكون Null ولكن لا يمكن أن يكون Null؟ 🤔
#برمجة
#برمجة
في البرمجة، وخصوصاً في لغات مثل C# و ++C، تظهر تحديات معينة تتعلق بمفهوم الـ Null. هذا المفهوم، الذي يبدو بسيطًا في الظاهر، يمكن أن يكون معقدًا في التعامل.
الـ Null قيمة تستخدم للدلالة على "لا شيء" أو "عدم وجود قيمة" فراغ و يتم استخدام Null لتوضيح أن متغير ما ليس لديه قيمة معينة (إلى ان يتم تعينها ).
طيب ايش مشكلتنا مع الـ Null ؟!
أحد المشاكل الرئيسية مع Null هو ما يُعرف بـ Null Reference Exception، وهوا أحد اكثر الأخطاء شيوعًا في البرمجة. هذا النوع من الأخطاء يحدث عندما يحاول البرنامج الوصول إلى خصائص أو كائن وهو في الواقع Null، أي ليس له وجود فعلي في الذاكرة. 👻
أحد المشاكل الرئيسية مع Null هو ما يُعرف بـ Null Reference Exception، وهوا أحد اكثر الأخطاء شيوعًا في البرمجة. هذا النوع من الأخطاء يحدث عندما يحاول البرنامج الوصول إلى خصائص أو كائن وهو في الواقع Null، أي ليس له وجود فعلي في الذاكرة. 👻
طيب كيف ممكن نواجه هالمشـكلة ؟❕
الكثير من اللغات ومنها الـC# العملاقة مفهوم "Nullable Types"
وبكل بساطة هي متغيرات يمكن أن تحمل قيمًا أو تكون Null.
مما يقلل من احتمالية حدوث أخطاء
الكثير من اللغات ومنها الـC# العملاقة مفهوم "Nullable Types"
وبكل بساطة هي متغيرات يمكن أن تحمل قيمًا أو تكون Null.
مما يقلل من احتمالية حدوث أخطاء
في C# 8.0 وما بعدها، تم تقديم (! )Null-Forgiving Operator (العامل (❗))، الذي يُستخدم للدلالة على أن المبرمج متأكد وواثق على ان القيمة تم تعريفها ب Null وهي لن تكون Null عند استخدامها، حتى وإن كانت قد تم تعريفها كـ Null في بداية الأمر.
طيب من الأساس ليش يتم تعريف متغير على انه Null ؟
في الغالب يتم توفير موارد للنظام مثلا في كثير من الاحيان مانحتاج ننشيئ كائن جديد. خصوصا اذا كان التعامل مع Many-to-one وكنا نحتاج ان ندخل بيانات في جهة ال Many بدون المساس بـلOne
في هاذي الحالة يمكن استخدام null عند تعريف الـOne
لتجنب إنشاء كائن لا حاجة له وتوفير موارد من النظام ووضع علامة ! لتجنب التنبيهات من الكومبايلر مع اخذ الحيطة والحذر
لتجنب إنشاء كائن لا حاجة له وتوفير موارد من النظام ووضع علامة ! لتجنب التنبيهات من الكومبايلر مع اخذ الحيطة والحذر
كثير من الأحيان، يفضل تجنب استخدام null لتقليل مخاطر الـ Null Reference Exceptions ولكتابة كود أكثر وضوحاً والمهم في النهاية هو الحفاظ على توازن في استخدام null، والتأكد من أن كل استخدام له يتم بشكل واعٍ ومدروس للحفاظ على سلامة ونظافة الكود
جاري تحميل الاقتراحات...