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

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

جزء من قسم المنطق وتدفق التنفيذ في رحلة C# على Coddy. الدرس 33 من 66.

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

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

أولًا، التحقّق الأساسي من كون القيمة null:

string name = null;

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

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

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

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

string name = null;
string displayName = name ?? "Unknown";  // displayName سيكون "Unknown"

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

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

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

string name = null;

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

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

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 فقط. فهو يلتقط أيضًا السلاسل النصية الفارغة والسلاسل التي تحتوي فقط على مسافات أو علامات تبويب أو أحرف whitespace أخرى.

challenge icon

التحدي

سهل

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

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

تذكّر استخدام أنماط مناسبة للتحقق من null.

جرّب بنفسك

using System;

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

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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم C# عبر الإنترنت