Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أنماط التحقق من الـ Null

جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 33 من 66.

يُعد التحقق من القيم الفارغة (Null checking) جزءاً أساسياً من كتابة كود C# قوي. هناك عدة أنماط يمكنك استخدامها للتحقق من القيم الفارغة بأمان.

لنستكشف بعض الأنماط الشائعة للتحقق من القيمة الفارغة (null):

أولاً، التحقق الأساسي من القيمة الفارغة (if-null):

string name = null;

if (name == null)
{
    Console.WriteLine("Name is null");
}

هناك نمط شائع آخر وهو عامل الشرط الصفري (?.)، الذي يتيح الوصول بأمان إلى أعضاء الكائنات التي قد تكون قيمتها null:

string name = null;
int? length = name?.Length;  // length ستكون null

يوفر عامل دمج القيم الفارغة (??) قيمة افتراضية عندما يكون التعبير فارغاً (null):

string name = null;
string displayName = name ?? "Unknown";  // ستكون قيمة displayName هي "Unknown"

يمكنك أيضًا ربط هذه الأنماط معًا لسيناريوهات أكثر تعقيدًا:

string name = null;
int length = (name ?? "").Length;  // سيكون الطول 0

تتحقق الطريقة string.IsNullOrWhiteSpace() مما إذا كانت السلسلة النصية null، أو فارغة، أو تحتوي فقط على أحرف مسافات بيضاء. إنها طريقة ملائمة للتحقق من صحة إدخال السلسلة النصية في استدعاء واحد:

string name = null;

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("No name provided");  // سيتم طباعة هذا
}

string blank = "   ";

if (string.IsNullOrWhiteSpace(blank))
{
    Console.WriteLine("Blank name provided");  // سيتم طباعة هذا أيضاً
}

استخدم string.IsNullOrWhiteSpace() عندما تريد التعامل مع null، والسلاسل النصية الفارغة، والسلاسل التي تحتوي على مسافات بيضاء فقط كمدخلات غير صالحة متكافئة.

challenge icon

التحدي

سهل

أنشئ طريقة تسمى processUserName تأخذ معاملًا نصيًا (string parameter) باسم userName. يجب أن تقوم الطريقة بما يلي:

  1. إذا كان userName هو null، فقم بإرجاع "No user provided"
  2. إذا كان userName فارغًا أو يحتوي على مسافات بيضاء فقط، فقم بإرجاع "Invalid username"
  3. خلاف ذلك، قم بإرجاع "Welcome, [userName]!" حيث أن [userName] هو اسم المستخدم الفعلي

تذكر استخدام أنماط التحقق من القيم الفارغة (null checking) المناسبة.

ورقة مرجعية

استخدم == null للتحقق الأساسي من القيمة الفارغة (null):

if (name == null)
{
    Console.WriteLine("Name is null");
}

استخدم عامل الشرط الصفري (null-conditional operator) ?. للوصول إلى الأعضاء بأمان:

int? length = name?.Length;  // سيكون length فارغاً (null) إذا كان name فارغاً (null)

استخدم عامل دمج القيم الصفرية (null-coalescing operator) ?? لتوفير قيم افتراضية:

string displayName = name ?? "Unknown";

استخدم string.IsNullOrWhiteSpace() للتحقق من السلاسل النصية الفارغة (null)، أو الفارغة تماماً، أو التي تحتوي على مسافات بيضاء فقط:

if (string.IsNullOrWhiteSpace(name))
{
    Console.WriteLine("Name is null, empty, or whitespace");
}

ربط العوامل (Chain operators) للسيناريوهات المعقدة:

int length = (name ?? "").Length;  // سيكون length مساوياً لـ 0 إذا كان name فارغاً (null)

جرّب بنفسك

using System;

class ProcessUserName
{
    public static string processUserName(string userName)
    {
        // اكتب كودك هنا
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow