0Pricing
C# Academy · درس

القيم القابلة للإفراغ في العمليات الحسابية

افهموا كيفية انتقال null عبر العمليات الحسابية

القيم القابلة للإفراغ في العمليات الحسابية درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

العوامل المرفوعة

تعمل لغة C# على «رفع» عوامل الحساب والمقارنة لتعمل مع الأنواع القابلة لـ null. فعوامل مثل + تحصل تلقائيًا على إصدار قابل لـ null.

using System;

class Program {
    static void Main() {
        int? a = 5;
        int? b = 3;
        Console.WriteLine(a + b);
    }
}

ينتقل null عبر العمليات الحسابية

إذا كان أي معامل في تعبير حسابي مرفوع هو null، فستكون النتيجة null.

using System;

class Program {
    static void Main() {
        int? a = 5;
        int? b = null;
        int? sum = a + b;
        Console.WriteLine(sum.HasValue);
    }
}

طباعة النتائج التي تساوي null

تُطبَع نتيجة حسابية تساوي null كسلسلة فارغة، بما يتوافق مع طريقة عرض القيم القابلة لـ null.

using System;

class Program {
    static void Main() {
        int? a = null;
        Console.WriteLine("Result: [" + (a * 2) + "]");
    }
}

الخلط بين القابل لـ null وغير القابل له

يمكنك استخدام int وint? معًا في العمليات الحسابية؛ إذ يُرقّى int إلى نوع قابل لـ null، وتكون النتيجة قابلة لـ null.

using System;

class Program {
    static void Main() {
        int? a = 10;
        int b = 4;
        int? result = a - b;
        Console.WriteLine(result);
    }
}

المقارنات المرفوعة

تُرفع المقارنات على القيم القابلة لـ null أيضًا. فإذا كان أحد الطرفين null، تُعيد مقارنات الترتيب مثل < القيمة false.

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = 5;
        Console.WriteLine(a < b);
        Console.WriteLine(a > b);
    }
}

المساواة مع null

بخلاف مقارنات الترتيب، تكون المساواة معرّفة: فقيمتا null متساويتان، وnull لا تساوي أي رقم.

using System;

class Program {
    static void Main() {
        int? a = null;
        int? b = null;
        Console.WriteLine(a == b);
        Console.WriteLine(a == 0);
    }
}

دمج ?? مع العمليات الحسابية

استخدم ?? لاستبدال null برقم آمن قبل إجراء الحساب، مع إبقاء النتيجة غير قابلة لـ null.

using System;

class Program {
    static void Main() {
        int? a = null;
        int total = (a ?? 0) + 100;
        Console.WriteLine(total);
    }
}

الحماية من القسمة

ادمج عمليات التحقق باستخدام HasValue مع الحسابات لتجنب كل من القيم null والقسمة على صفر.

using System;

class Program {
    static void Main() {
        int? a = 20, b = 4;
        if (a.HasValue && b.HasValue && b.Value != 0)
            Console.WriteLine(a.Value / b.Value);
    }
}

جمع البيانات القابلة لـ null

عند جمع بيانات قد تحتوي على قيم null، حدّد ما إذا كنت تريد تخطيها أم معاملتها كأنها صفر.

using System;

class Program {
    static void Main() {
        int?[] data = { 5, null, 10, null, 2 };
        int total = 0;
        foreach (var x in data)
            total += x ?? 0;
        Console.WriteLine(total);
    }
}

القيمة المنطقية القابلة لـ null في المنطق

تشارك قيمة bool? في المنطق المرفوع: ‏true | null تساوي true، وfalse & null تساوي false، وفي الحالات الأخرى تكون النتيجة null.

using System;

class Program {
    static void Main() {
        bool? a = null;
        bool? b = true;
        Console.WriteLine(a | b);
    }
}

تحويل النتيجة إلى قيمة عادية

بعد إجراء حساب قابل لـ null، استخدم ?? أو GetValueOrDefault للحصول على قيمة عادية لعرضها.

using System;

class Program {
    static void Main() {
        int? a = 6, b = 7;
        int product = (a * b) ?? 0;
        Console.WriteLine(product);
    }
}

تحقق سريع

اختبر معرفتك بالحسابات القابلة لـ null.

مراجعة

ترفع لغة C# عوامل الحساب والمقارنة والمنطق لتعمل مع الأنواع القابلة لـ null. ويؤدي وجود أي معامل يساوي null في عملية حسابية إلى نتيجة تساوي null، بينما تُعيد مقارنات الترتيب مع null القيمة false، وتكون المساواة معرّفة بوضوح.

استخدم ?? أو GetValueOrDefault لاستبدال القيم بقيم آمنة قبل الحسابات أو بعدها، واستخدم HasValue للتحقق عند الحاجة.

الأسئلة الشائعة

هل درس «القيم القابلة للإفراغ في العمليات الحسابية» مجاني؟

نعم — نص درس «القيم القابلة للإفراغ في العمليات الحسابية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «القيم القابلة للإفراغ في العمليات الحسابية»؟

افهموا كيفية انتقال null عبر العمليات الحسابية تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «القيم القابلة للإفراغ في العمليات الحسابية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. التعرّف على أنواع القيم القابلة للإفراغ
  2. خاصيتا HasValue وValue
  3. عوامل الدمج عند null
  4. القيم القابلة للإفراغ في العمليات الحسابية
← العودة إلى C# Academy