التقييم المختصر
جزء من قسم المنطق وتدفق التنفيذ في رحلة C# على Coddy. الدرس 36 من 66.
التقييم قصير الدائرة هو تقنية لتحسين الأداء في C#، حيث لا يتم تقييم المعامل الثاني لعوامل AND المنطقية (&&) وOR (||) إلا عند الضرورة.
بالنسبة إلى AND المنطقي (&&)، إذا كان المعامل الأول هو false، فستكون النتيجة دائمًا false بغضّ النظر عن المعامل الثاني:
bool result = false && SomeMethod();في هذا المثال، لن يتم استدعاء SomeMethod() لأن المعامل الأول هو false بالفعل.
بالنسبة إلى OR المنطقي (||)، إذا كان المعامل الأول هو true، فستكون النتيجة دائمًا true بغض النظر عن المعامل الثاني:
bool result = true || SomeMethod();هنا، لن يتم استدعاء SomeMethod() لأن المعامل الأول هو true بالفعل.
يمكن استخدام هذا السلوك لمنع الأخطاء، مثل التحقق مما إذا كان كائن ما هو null قبل الوصول إلى خصائصه:
// آمن - إذا كان student يساوي null، فلن يُقيَّم الجانب الأيمن
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}التحدي
سهلأنشئ أسلوبًا باسم ProcessUserInput يأخذ وسيطين:
- قيمة من النوع
string(input) - عددًا صحيحًا (
minLength)
يجب أن يقوم الأسلوب بما يلي:
- التحقق من أن قيمة الإدخال ليست null
- التحقق من أن طول الإدخال لا يقل عن
minLength - فقط إذا كان الشرطان صحيحين، اطبع "Valid input: " متبوعًا بقيمة الإدخال
- إذا فشل أي من الشرطين، اطبع "Invalid input"
استخدم التقييم قصير الدائرة لمنع أي NullReferenceException محتمل.
جرّب بنفسك
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// اكتب الكود الخاص بك هنا
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Nullتدرّب بنفسك: مترجم C# عبر الإنترنت