ملخص - أمان الـ Null
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 35 من 66.
التحدي
سهلقم بإنشاء طريقة (method) تسمى SafelyProcessData تأخذ معاملين:
- سلسلة نصية
nameيمكن أن تكون null - عدد صحيح قابل للإلغاء (nullable int)
age
يجب أن تقوم الطريقة بما يلي:
- التحقق مما إذا كان
nameهو null أو فارغاً باستخدام أنماط التحقق من القيم الفارغة (null checking) المناسبة - التحقق مما إذا كان
ageيحتوي على قيمة - إرجاع سلسلة نصية منسقة كما يلي:
- إذا كان
nameهو null، فقم بإرجاع "No name provided" - إذا كان
nameفارغاً أو يحتوي على مسافات بيضاء، فقم بإرجاع "Invalid name" - إذا كان
ageهو null، فقم بإرجاع "Name: [name], Age: Unknown" - خلاف ذلك، قم بإرجاع "Name: [name], Age: [age]"
- إذا كان
تأكد من استخدام تقنيات البرمجة الدفاعية للتعامل مع جميع سيناريوهات null المحتملة!
جرّب بنفسك
using System;
class Program
{
// قم بتنفيذ طريقة SafelyProcessData هنا
static void Main(string[] args)
{
string nameInput = Console.ReadLine();
string ageInput = Console.ReadLine();
// تعامل مع الحالة التي يكون فيها الإدخال هو السلسلة النصية "null"
string name = nameInput == "null" ? null : nameInput;
int? age = null;
if (ageInput != "null")
{
age = int.Parse(ageInput);
}
string result = SafelyProcessData(name, age);
Console.WriteLine(result);
}
}جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Null