يمكن للعديد من أنواع أعضاء struct والصنف (باستثناء الحقول بشكل أساسي) استخدام صيغة العضو ذي الجسم التعبيري. غالبًا ما ينتج تعريف العضو باستخدام تعبير كودًا أكثر إيجازًا وأسهل قراءة من الكتل أو العبارات التقليدية.
الطرق والخصائص للقراءة فقط من بين الأعضاء التي يمكن تعريفها بأجسام تعبيرية.
public int Times3(int input) => input * 3;
public int Interesting => 1729;
يمكن لتعبير switch مطابقة قيمة مع حالة واحدة في مجموعة من الأنماط وإرجاع القيمة المرتبطة أو اتخاذ الإجراء المرتبط. يُشار إلى الارتباط بالرمز =>. بالإضافة إلى ذلك، يمكن أن يحتوي كل نمط على حارس حالة اختياري يُقدَّم بالكلمة المفتاحية when. يجب أن يُقيَّم تعبير حارس الحالة إلى صحيح حتى يتم اختيار ذلك "الذراع" من switch. تُقيَّم الحالات (المعروفة أيضًا بـ أذرع switch) بترتيب النص، وتُقطع العملية وتُرجَع القيمة المرتبطة بمجرد العثور على تطابق.
double xx = 42d;
string interesting = xx switch
{
0 => "I suppose zero is interesting",
3.14 when DateTime.Now.Day == 14 && DateTime.Now.Month == 3 => "Mmm pie!",
3.14 => "π",
42 => "a bit of a cliché",
1729 => "only if you are a pure mathematician",
_ => "not interesting"
};
// => interesting == "a bit of a cliché"
تسمح العوامل الثلاثية بتعريف الشروط باستخدام تعبيرات بدلًا من كتل العبارات. وهذا يعكس أساليب البرمجة الوظيفية، ويمكنه غالبًا جعل الكود أكثر تعبيرًا وأقل عرضة للأخطاء.
يجمع العامل الثلاثي 3 تعبيرات: شرطًا يتبعه تعبير يُقيَّم ويُرجَع إذا كان الشرط صحيحًا (جزء if، الذي يُقدَّم بـ ?) وتعبيرًا يُقيَّم ويُرجَع إذا كان الشرط خطأً (جزء else، الذي يُقدَّم بـ :).
int a = 3, b = 4;
int max = a > b ? a : b;
// => 4
تُعد تعبيرات throw بديلًا عن عبارات throw، ويمكنها على وجه الخصوص أن تضيف إلى قوة العوامل الثلاثية والتعبيرات المركبة الأخرى.
string trimmed = str == null ? throw new ArgumentException() : str.Trim();
طُلب منك تحسين بعض الكود القديم المتعلق بمحطة أرصاد جوية.
تقبل محطة الأرصاد الجوية القراءات، وتُخرج بعض المؤشرات مثل درجة الحرارة والضغط.
أعِد هيكلة أي طرق مناسبة في صنف WeatherStation باستخدام الأعضاء ذات الجسم التعبيري. استخدم العمليات الثلاثية وتعبيرات switch حيثما كان ذلك مناسبًا لتحسين التعبيرية وتقليل الأخطاء المحتملة.
تأكد من استمرار نجاح جميع الاختبارات.
سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.