المسارات
/
C#
C#
/
التمارين
/
الطقس في ديثر
الطقس في ديثر

الطقس في ديثر

تمرين تعلّمي

مقدمة

الأعضاء ذات الجسم التعبيري

يمكن للعديد من أنواع أعضاء struct والصنف (باستثناء الحقول بشكل أساسي) استخدام صيغة العضو ذي الجسم التعبيري. غالبًا ما ينتج تعريف العضو باستخدام تعبير كودًا أكثر إيجازًا وأسهل قراءة من الكتل أو العبارات التقليدية.

الطرق والخصائص للقراءة فقط من بين الأعضاء التي يمكن تعريفها بأجسام تعبيرية.

public int Times3(int input) => input * 3;

public int Interesting => 1729;

تعبيرات switch

يمكن لتعبير 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 بديلًا عن عبارات throw، ويمكنها على وجه الخصوص أن تضيف إلى قوة العوامل الثلاثية والتعبيرات المركبة الأخرى.

string trimmed = str == null ? throw new ArgumentException() : str.Trim();

التعليمات

طُلب منك تحسين بعض الكود القديم المتعلق بمحطة أرصاد جوية.

تقبل محطة الأرصاد الجوية القراءات، وتُخرج بعض المؤشرات مثل درجة الحرارة والضغط.

1. حسّن الإيجاز وسهولة القراءة في الطرق المناسبة

أعِد هيكلة أي طرق مناسبة في صنف WeatherStation باستخدام الأعضاء ذات الجسم التعبيري. استخدم العمليات الثلاثية وتعبيرات switch حيثما كان ذلك مناسبًا لتحسين التعبيرية وتقليل الأخطاء المحتملة.

تأكد من استمرار نجاح جميع الاختبارات.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
C# Exercism

مستعد لبدء الطقس في ديثر؟

سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.