Avatar ·

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

مرحبًا! لقد بدأت للتو في تعلم C# وصادفت بناء جملة غريبًا. في كود شخص آخر، رأيت هذا التركيب: ```csharp string name = userName ?? "Гость"; ``` ماذا تفعل علامتا الاستفهام `??` هنا؟ أفهم أن `userName` هو متغير ما، ولكن لماذا نضع علامتي استفهام ثم سلسلة نصية؟ هل هذا نوع من التحقق؟ حاولت البحث في Google، لكنني وجدت في الغالب شروحات حول العامل الثلاثي `? :`، وهذا يبدو مختلفًا. كما لاحظت أنهم أحيانًا يكتبون `??=` — هل هذا مرتبط أيضًا؟ على سبيل المثال، في هذا الكود: ```csharp list ??= new List(); ``` هل يمكنك شرح كيفية عمل هذا ولماذا هو مطلوب بكلمات بسيطة؟ يُفضل مع أمثلة لأنني شخص بصري. شكرًا مقدمًا! <<>>

عامل الدمج مع null (??) في C#

علامتا الاستفهام ?? في C# هما عامل الدمج مع null (null-coalescing operator). يُستخدم للتحقق من القيمة إذا كانت null، وإذا كانت كذلك،