Operators
- القسمة
/
: بنسأل سؤال فيها كام؟ يعني 20/5: العشرين فيها كام خمسة؟ - باقي القسمة
%
: بيسأل سؤال هيتبقا فيها كام؟ يعني 20%5: العشرين لما نشيل منها كل الخمسات هيتبقا فيها كام؟
Priority of operators
- Parentheses
( )
- Function and method calls
- Postfix
x++
,x--
- Prefix
++x
,--x
- Arithmetic Operators
- Comparison operators
- Logical operators
- Conditional operator (Ternary Operators)
? :
- Assignment operators
- Null-conditional operators
?
تسمية المتغيرات من نوع Boolean
:
تسمية المتغيرات من نوع Boolean
في C# تعتبر جزءًا مهمًا من كتابة كود نظيف ومقروء.
بالنسبة للمتغيرات من نوع Boolean
، هناك بعض الإرشادات الشائعة التي يمكن اتباعها:
- استخدام الأفعال المساعدة:
- مثل
is
,has
,can
,should
,was
,will
في بداية اسم المتغير. هذه الأفعال توضح أن المتغير يمثل حالة أو قدرة. - مثال:
isVisible
لتحديد ما إذا كان العنصر مرئيًا.hasCompleted
لتحديد ما إذا كانت المهمة قد اكتملت.canExecute
لتحديد ما إذا كان يمكن تنفيذ العملية.
- استخدام أسماء وصفية:
- يعبر عن الغرض منه بوضوح.
- مثال:
isAhmedHigherThanAli
يوضح أن المتغير يتحقق مما إذا كان أحمد أعلى من علي.
- تجنب النفي في الأسماء:
- مثل
isNotVisible
. بدلاً من ذلك، يمكن استخدامisHidden
أوisInvisible
لتجنب الالتباس.
- استخدام صيغة السؤال:
- مثال:
isDoorOpen
يوضح أن المتغير يتحقق مما إذا كان الباب مفتوحًا.
مثال عملي
public class Room
{
public bool IsDoorOpen { get; set; }
public bool HasWindow { get; set; }
public bool CanEnter { get; set; }
public void CheckRoomStatus()
{
if (IsDoorOpen)
{
Console.WriteLine("The door is open.");
}
else
{
Console.WriteLine("The door is closed.");
}
if (HasWindow)
{
Console.WriteLine("The room has a window.");
}
else
{
Console.WriteLine("The room does not have a window.");
}
}
}
في هذا المثال، الأسماء IsDoorOpen
, HasWindow
, وCanEnter
توضح بوضوح الغرض من كل متغير وتساعد في جعل الكود أكثر وضوحًا وسهولة في الفهم.
Flag with bool and Logical Operators
يمكن استخدام المتغيرات البولية (bool) كـ “Flag” لتتبع حالة معينة أو لتفعيل/تعطيل وظائف محددة في الموقع الإلكتروني.
مثال على ذلك: الوضع الليلي (Dark Mode) والوضع النهاري (Light Mode)
bool isDarkMode = false; // الوضع الافتراضي هو الوضع النهاري (Light Mode)
// وظيفة لتبديل الوضع عند تفاعل المستخدم (مثلاً، عند الضغط على زر)
void ToggleTheme()
{
isDarkMode = !isDarkMode; // عكس قيمة المتغير لتغيير الوضع
ApplyTheme();
}
// وظيفة لتطبيق الثيم بناءً على قيمة المتغير
void ApplyTheme()
{
if (isDarkMode)
{
// تطبيق إعدادات الوضع الليلي
// مثلاً، تغيير ألوان الواجهة إلى ألوان داكنة
}
else
{
// تطبيق إعدادات الوضع النهاري
// مثلاً، استخدام ألوان فاتحة
}
}
استخدام الـ Flag يساعد في:
- تعقب الحالة الحالية: نعرف دائماً ما إذا كان الموقع في الوضع الليلي أو النهاري.
- تسهيل تغيير الحالة: يمكننا بسهولة تغيير الثيم بعكس قيمة الـ Flag.
- تبسيط منطق البرنامج: بدلاً من استخدام شروط معقدة، نستخدم متغير بولي بسيط للتحقق من الحالة.
في تطبيق ويب حقيقي:
- يمكنك تخزين قيمة الـ Flag في جلسة المستخدم (Session) أو باستخدام ملفات تعريف الارتباط (Cookies) للحفاظ على اختيار المستخدم عند التنقل بين الصفحات أو عند العودة للموقع.
- يمكن استخدام CSS لتغيير الثيم عن طريق إضافة/إزالة فئات (classes) إلى عناصر الـ HTML بناءً على قيمة الـ Flag.
- يمكن أيضاً استخدام JavaScript للتفاعل مع واجهة المستخدم بشكل ديناميكي إذا كان التطبيق يتضمن تفاعلات أمامية.
مثال على تطبيق الثيم باستخدام CSS:
void ApplyTheme()
{
if (isDarkMode)
{
// إضافة فئة "dark-mode" إلى الـ body
// في ASP.NET يمكن استخدام:
Body.Attributes.Add("class", "dark-mode");
}
else
{
// إزالة فئة "dark-mode"
Body.Attributes.Remove("class");
}
}
وبهذا، يمكن لـ CSS التحكم في الألوان والتنسيقات بناءً على ما إذا كانت فئة “dark-mode” موجودة أم لا.