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

أنواع القيم القابلة للـ Null

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

في لغة C#، لا يمكن لأنواع القيم (value types) مثل int و float و bool أن تحمل قيم null بشكل طبيعي. تسمح أنواع القيم القابلة للإلغاء (Nullable value types) لهذه الأنواع بتمثيل إما قيمة أو null.

صرّح عن int عادي:

int regularNumber = 10;

قم بالتصريح عن int قابل للقيمة null باستخدام الصيغة ?:

int? nullableNumber = 20;

تعيين null لنوع يقبل القيمة null:

nullableNumber = null;

بعد تنفيذ الكود أعلاه، لا يحتوي nullableNumber على أي قيمة (null).

تحقق مما إذا كان النوع القابل للإلغاء (nullable type) يحتوي على قيمة:

if (nullableNumber.HasValue)
{
    Console.WriteLine("Value is: " + nullableNumber.Value);
}
else
{
    Console.WriteLine("No value");
}

يمكنك أيضاً استخدام عامل دمج القيم الخالية (null-coalescing operator) لتوفير قيمة افتراضية:

int definiteNumber = nullableNumber ?? 0;
challenge icon

التحدي

سهل

قم بإنشاء دالة باسم ProcessNullableAge تقوم بما يلي:

  1. تأخذ بارامتر من نوع int قابل للقيمة null يسمى age
  2. تتحقق مما إذا كان العمر يحتوي على قيمة
  3. إذا كان يحتوي على قيمة، تطبع "Age is: X years" (حيث X هي القيمة)
  4. إذا لم يكن يحتوي على قيمة، تطبع "Age not provided"
  5. تعيد قيمة العمر إذا كانت موجودة، وإلا تعيد 0

جرّب بنفسك

using System;

class Program
{
    // قم بتنفيذ طريقة ProcessNullableAge هنا
    
    static void Main(string[] args)
    {
        string input = Console.ReadLine();
        
        int? age = null;
        if (input != "null")
        {
            age = int.Parse(input);
        }
        
        int result = ProcessNullableAge(age);
        Console.WriteLine("Returned value: " + result);
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow

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