ملخص - أمان الـ Null
جزء من قسم المنطق وتدفق التنفيذ في رحلة 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);
}
}جميع دروس المنطق وتدفق التنفيذ
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تدرّب بنفسك: مترجم C# عبر الإنترنت