?? عامل التشغيل (مرجع #C)

عامل التشغيل ?? يسمى عامل ائتلافه خالي ويستخدم لتعريف قيمة افتراضية لأنواع قيمة خالية، فضلا عن مرجع للأنواع. وتقوم بإرجاع المعامل الأيمن إذا لم تكن خالية؛ وإلا فإنها ترجع المعامل الصحيح.

ملاحظات

يمكن أن تحتوي على نوع يقبل بيانات فارغة القيمة أو يمكن أن تكون غير معرّفة. عامل تشغيل الـ ?? يحدد القيمة الافتراضية التي يتم إرجاعها عندما يتم تعيين نوع ذا قيمة فارغة إلى نوع غير ذا قيمة فارغة. إذا حاولت تعيين نوع قيمة ذا قيمة خالية إلى نوع قيمة غير ذا قيمة خالية بدون استخدام عامل التشغيل ??، فإنك ستقوم بإنشاء خطأ وقت التحويل برمجياً. إذا قمت باستخدام التحويل, و نوع القيمة الخالية لم يتم تعريفه حالياً, فإن الاستثناء InvalidOperationException سوف يتم طرحه.

لمزيد من المعلومات، راجع الأنواع ذات القيم الخالية (دليل البرمجة لـ #C).

النتيجة؟؟ لا يعتبر عامل التشغيل ثابت حتى إذا كانت كلا الوسيطات الخاصة به عبارة عن ثوابت.

مثال

class NullCoalesce
{
    static int? GetNullableInt()
    {
        return null;
    }

    static string GetStringValue()
    {
        return null;
    }

    static void Main()
    {
        // ?? operator example.
        int? x = null;

        // y = x, unless x is null, in which case y = -1.
        int y = x ?? -1;

        // Assign i to return value of method, unless
        // return value is null, in which case assign
        // default value of int to i.
        int i = GetNullableInt() ?? default(int);

        string s = GetStringValue();
        // ?? also works with reference types. 
        // Display contents of s, unless s is null, 
        // in which case display "Unspecified".
        Console.WriteLine(s ?? "Unspecified");
    }
}

راجع أيضًا:

المرجع

عوامل تشغيل #C

الأنواع ذات القيم الخالية (دليل البرمجة لـ #C)

المبادئ

دليل البرمجة لـ #C

موارد أخرى

مرجع C#‎

ماذا تعني بالضبط كلمة 'lifted' ؟