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-conditional operator (?.))، والذي يصل بأمان إلى أعضاء الكائنات التي قد تكون 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() وسيلة مريحة للتحقق مما إذا كانت السلسلة النصية (string) قيمتها null، أو فارغة، أو تحتوي فقط على مسافات بيضاء - كل ذلك في استدعاء واحد:

string name = null;

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

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

string name1 = null;
string name2 = "";
string name3 = "   ";

// ستطبع الحالات الثلاث هذه الرسالة
if (string.IsNullOrWhiteSpace(name1)) Console.WriteLine("name1 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name2)) Console.WriteLine("name2 is null/empty/whitespace");
if (string.IsNullOrWhiteSpace(name3)) Console.WriteLine("name3 is null/empty/whitespace");

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

challenge icon

التحدي

سهل

أنشئ دالة تسمى processUserName تأخذ معاملًا نصيًا userName. يجب أن تقوم الدالة بما يلي:

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

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

جرّب بنفسك

using System;

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

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

جميع دروس Logic & Flow