Avatar ·

ماذا تعني علامتا الاستفهام في C#؟ (العامل ??)

مرحبًا أيها الزملاء! بدأت مؤخرًا في تعلم C# وصادفت بناءً غريبًا في كود شخص آخر. كان هناك شيء مثل: ```csharp string name = userName ?? "ضيف"; ``` أفهم أن `userName` متغير و`"ضيف"` نص. لكن ماذا تفعل علامتا الاستفهام المزدوجة (`??`)؟ هل هي عامل مقارنة؟ أم اختصار لـ `if-else`؟ حاولت البحث على الإنترنت لكني وجدت فقط شروحات عامة بالإنجليزية لم أفهمها تمامًا. هل يمكنكم الشرح بكلمات بسيطة بالعربية، ويفضل مع أمثلة؟ متى يجب استخدام هذا؟ وهل هناك فرق بين `??` والعامل الثلاثي `?:`؟ شكرًا مقدمًا! أكتب تطبيق وحدة تحكم بسيط حيث أحتاج إلى الحصول على اسم المستخدم، وإذا لم يتم تحديده (null)، فإظهار "ضيف". هذا هو كودي الحالي الذي يبدو طويلًا جدًا: ```csharp string userName = Console.ReadLine(); string name; if (userName != null) { name = userName; } else { name = "ضيف"; } ```