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