55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
---
|
|
title: Null-conditional Operator
|
|
localeTitle: مشغل شرطي لاغية
|
|
---
|
|
# مشغل شرطي لاغية
|
|
|
|
تسمح عوامل الشرطية خالية التحقق خالية مع الحد الأدنى من التعليمات البرمجية. على سبيل المثال ، إذا كان لديك متغير الموظف من نوع الموظف مع خاصية من نوع العنوان ، قد تفعل فحص فارغ كما يلي:
|
|
|
|
`Address address = null;
|
|
if (employee != null)
|
|
{
|
|
address = employee.Address;
|
|
}
|
|
`
|
|
|
|
يمكنك استخدام عامل تشغيل شرطي قياسي لجعل ذلك الاختيار أكثر إيجازًا:
|
|
|
|
`Address address = employee != null ? employee.Address : null;
|
|
`
|
|
|
|
ومع ذلك ، في C # 6.0 دخلت المشغلين خالية الشرطي ، لذلك الآن يمكن للخط أعلاه ببساطة يتم تمثيله على النحو التالي:
|
|
|
|
`Address address = student?.Address;
|
|
`
|
|
|
|
إذا كان الموظف فارغًا ، فسيتم تعيين العنوان ببساطة ، ولن يحدث أي NullReferenceExeception. هذا يصبح أكثر فائدة مع الرسوم البيانية كائن أعمق ، كما يمكنك التعامل مع سلسلة من وصول الأعضاء المشروط.
|
|
|
|
فمثلا:
|
|
|
|
`string city = student?.Address?.City;
|
|
`
|
|
|
|
المشغلين الشرطيين هم دوائر قصيرة ، وذلك بمجرد التحقق من وصول العضو الشرطي إرجاع لا شيء ، والباقي لا يحدث.
|
|
|
|
# عامل التوليف
|
|
|
|
وهناك خيار آخر مفيد لفحص الأصفار وهو مشغل التوليف الفارغ. تقوم بإرجاع المعامل الأيسر إذا كان المعامل ليس باطلاً ؛ وإلا فإنها ترجع المعامل الأيمن.
|
|
|
|
فمثلا:
|
|
|
|
`public string GetStringValue()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
// Display the value of s if s is NOT null. If x IS null, display the string "It was null."
|
|
|
|
string x = GetStringValue();
|
|
|
|
Console.WriteLine(x ?? "It was null.");
|
|
|
|
// Result:
|
|
|
|
"It was null."
|
|
` |