Skip to content

كورس #C كامل | شرح م أحمد ممدوح - منحة ITI #4

By Syntax Error

1 hr 53 min video·ar··7281 views

This is an AI-generated summary of “كورس #C كامل | شرح م أحمد ممدوح - منحة ITI #4” — a 1 hr 53 min YouTube video by Syntax Error, published July 8, 2025. It condenses the full transcript into 10 key takeaways with clickable timestamps.

Summary

يشرح هذا الفيديو الـ Enums والـ Structs في لغة C#، موضحًا خصائصها، تهيئتها، تمثيلها في الذاكرة، وكيفية استخدام ميزات مثل عوامل التشغيل Bitwise وسمة Flags، بالإضافة إلى تسليط الضوء على الفروقات الرئيسية بين الـ Structs والـ Classes.

Key Points

  • يمكن تحويل القيم بين الأعداد الصحيحة والـ Enum باستخدام الكاست الصريح، وعند طباعة قيمة Enum، تُطبع القيمة النصية افتراضيًا، بينما تتطلب طباعة القيمة الرقمية كاست صريح إلى عدد صحيح. 
  • الـ Structs هي Value Types تُنشأ على الـ Stack (للمتغيرات المحلية) وتُمرر بالـ Value (بالنسخ) عند استدعاء الدوال، ولا يمكن أن تحمل القيمة Null. 
  • يسمح الـ Attribute `[Flags]` بطباعة القيم المدمجة للـ Enum كقائمة من أسمائها النصية بدلاً من مجموعها الرقمي، ويُستخدم عامل التشغيل Bitwise AND للتحقق مما إذا كان متغير الـ Enum يحتوي على حالة معينة. 
  • يُستخدم عامل التشغيل Bitwise OR لدمج حالات متعددة من الـ Enum في متغير واحد، ولضمان قيم فريدة عند الدمج، يُفضل أن تكون قيم الـ Enum قوى للعدد 2 (مثل 1، 2، 4، 8). 
  • تُستخدم الـ Structs عادةً للأنواع الصغيرة التي تمثل قيمًا عددية أو ما شابهها، مثل الأرقام المركبة أو التواريخ والأوقات، بينما تُستخدم الـ Classes للأنواع الأكثر تعقيدًا التي تتطلب سلوك الـ Reference Type. 
  • تُستخدم الـ Enums للتعبير عن حالات متعددة لمتغير واحد، مثل حالات الطقس، ويمكن تحديد قيمها بشكل صريح أو تترك لتأخذ قيمًا تصاعدية افتراضية تبدأ من الصفر. 
  • على عكس الـ Structs، يتم تهيئة جميع أعضاء الـ Class تلقائيًا بقيمها الافتراضية (صفر للـ Value Types و Null للـ Reference Types) قبل تنفيذ أي Constructor، وعند مقارنة كائنين من Class باستخدام `==`، تتم مقارنة الـ References (العناوين) افتراضيًا، ويتطلب تجاوز عامل التشغيل `==` أيضًا تجاوز عامل التشغيل `!=`. 
  • يجب تهيئة جميع أعضاء متغير الـ Struct قبل استخدامه، وإذا تم تعريف Constructor مخصص للـ Struct، فيجب أن يقوم بتهيئة جميع الأعضاء. 
  • يُمكن استخدام `new StructName()` لتهيئة أعضاء الـ Struct بالقيم الافتراضية، وهذا يختلف عن الـ Classes حيث تقوم `new` بإنشاء كائن في الـ Heap. 
  • يمكن لمتغير الـ Enum أن يحمل قيمة رقمية غير معرفة صراحةً داخل الـ Enum، وذلك لأن الـ Enum يُمثل كعدد صحيح في الذاكرة. 
كورس #C كامل | شرح م أحمد ممدوح - منحة ITI #4

كورس #C كامل | شرح م أحمد ممدوح - منحة ITI #4

يشرح هذا الفيديو الـ Enums والـ Structs في لغة C#، موضحًا خصائصها، تهيئتها، تمثيلها في الذاكرة، وكيفية استخدام ميزات مثل عوامل التشغيل Bitwise وسمة Flags، بالإضافة إلى تسليط الضوء على الفروقات الرئيسية بين الـ Structs والـ Classes.

Key Points

—يمكن تحويل القيم بين الأعداد الصحيحة والـ Enum باستخدام الكاست الصريح، وعند طباعة قيمة Enum، تُطبع القيمة النصية افتراضيًا، بينما تتطلب طباعة القيمة الرقمية كاست صريح إلى عدد صحيح.
—الـ Structs هي Value Types تُنشأ على الـ Stack (للمتغيرات المحلية) وتُمرر بالـ Value (بالنسخ) عند استدعاء الدوال، ولا يمكن أن تحمل القيمة Null.
—يسمح الـ Attribute `[Flags]` بطباعة القيم المدمجة للـ Enum كقائمة من أسمائها النصية بدلاً من مجموعها الرقمي، ويُستخدم عامل التشغيل Bitwise AND للتحقق مما إذا كان متغير الـ Enum يحتوي على حالة معينة.
—يُستخدم عامل التشغيل Bitwise OR لدمج حالات متعددة من الـ Enum في متغير واحد، ولضمان قيم فريدة عند الدمج، يُفضل أن تكون قيم الـ Enum قوى للعدد 2 (مثل 1، 2، 4، 8).
—تُستخدم الـ Structs عادةً للأنواع الصغيرة التي تمثل قيمًا عددية أو ما شابهها، مثل الأرقام المركبة أو التواريخ والأوقات، بينما تُستخدم الـ Classes للأنواع الأكثر تعقيدًا التي تتطلب سلوك الـ Reference Type.
—تُستخدم الـ Enums للتعبير عن حالات متعددة لمتغير واحد، مثل حالات الطقس، ويمكن تحديد قيمها بشكل صريح أو تترك لتأخذ قيمًا تصاعدية افتراضية تبدأ من الصفر.
—على عكس الـ Structs، يتم تهيئة جميع أعضاء الـ Class تلقائيًا بقيمها الافتراضية (صفر للـ Value Types و Null للـ Reference Types) قبل تنفيذ أي Constructor، وعند مقارنة كائنين من Class باستخدام `==`، تتم مقارنة الـ References (العناوين) افتراضيًا، ويتطلب تجاوز عامل التشغيل `==` أيضًا تجاوز عامل التشغيل `!=`.
—يجب تهيئة جميع أعضاء متغير الـ Struct قبل استخدامه، وإذا تم تعريف Constructor مخصص للـ Struct، فيجب أن يقوم بتهيئة جميع الأعضاء.
—يُمكن استخدام `new StructName()` لتهيئة أعضاء الـ Struct بالقيم الافتراضية، وهذا يختلف عن الـ Classes حيث تقوم `new` بإنشاء كائن في الـ Heap.
—يمكن لمتغير الـ Enum أن يحمل قيمة رقمية غير معرفة صراحةً داخل الـ Enum، وذلك لأن الـ Enum يُمثل كعدد صحيح في الذاكرة.
Summarize any video — free
Summarizer.tube
Copy All
Share Link
Bookmark

Summarize any YouTube video, free

You just read an AI summary of this video. Paste any other YouTube link and get the key points with clickable timestamps in seconds — no signup, 5 free a day.

More Resources

More Summaries

17 min

$1 vs $500,000 Date

MrBeastar

يستعرض الفيديو سلسلة من المواعيد الغرامية الفاخرة والمبتكرة التي تتراوح تكلفتها بين دولار واحد و500 ألف دولار، بهدف إظهار مدى الإبداع في التعبير عن الحب والاهتمام بالخطيبة.

1 hr 28 min

I Played Every Nioh Game...

Guyinthetiear

يقدم هذا الفيديو مراجعة شاملة لسلسلة ألعاب Nioh، مع التركيز على Nioh 1 و Nioh 2 و Nioh 3، ويقارن بينها لتحديد الأفضل في السلسلة، مع تسليط الضوء على أسلوب اللعب المعقد، نظام الغنائم، والقصة المستوحاة م

51 min

Returning Player's Guide To The 7.0 Meta

Zajef77ar

يقدم هذا الفيديو دليلاً شاملاً للاعبين العائدين إلى لعبة جينشين إمباكت، محللاً الميتا الحالية من خلال تصنيف الأنماط الشائعة للفرق مثل النجمية والقمرية والتبخير/الذوبان والحمل الزائد، مع شرح آليات عمله

12 min

Can AI Help Solve the Climate Crisis? | Sims Witherspoon | TED

TEDar

يستكشف هذا الفيديو كيف يمكن للذكاء الاصطناعي أن يلعب دورًا حاسمًا في معالجة تغير المناخ من خلال تحسين أنظمة الطاقة المتجددة الحالية، مع التركيز على طاقة الرياح كمثال رئيسي، ويؤكد على أهمية التعاون بين