███████╗███╗ ███╗██████╗ ██╗ ██████╗ ██╗ ██╗███████╗███████╗
██╔════╝████╗ ████║██╔══██╗██║ ██╔═══██╗╚██╗ ██╔╝██╔════╝██╔════╝
█████╗ ██╔████╔██║██████╔╝██║ ██║ ██║ ╚████╔╝ █████╗ █████╗
██╔══╝ ██║╚██╔╝██║██╔═══╝ ██║ ██║ ██║ ╚██╔╝ ██╔══╝ ██╔══╝
███████╗██║ ╚═╝ ██║██║ ███████╗╚██████╔╝ ██║ ███████╗███████╗
╚══════╝╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚══════╝╚══════╝
Visual Studio Community • .NET • Console App
كلاس واحد اسمه Employee، وكل موظف = Object واحد اسمه emp.
البيانات مقفولة (Private) ومش بتتلمس غير من خلال Properties فيها شروط (Validation).
جربناها على 4 موظفين — كل واحد بيكشف حالة مختلفة.
┌─────────────────────────────────────────┐
│ 🔒 Fields (Private) │
├─────────────────────────────────────────┤
│ string name │
│ int age │
│ double salary │
└─────────────────────────────────────────┘
+ n (Name) → ممنوع فاضي أو null
+ a (Age) → لازم بين 18 و 60 .. غير كده يترفض
+ sal (Salary) → لازم قيمة موجبة (0 فأكتر) .. غير كده يترفض
🅳 Default Constructor → Unknown | 18 | 0
🅿 Parameterized Constructor → بيمرر البيانات عن طريق الـ Properties نفسها
(مش الـ Fields) عشان الشرط يفضل شغال
📋 DisplayInfo() → بتطبع بيانات الـ emp كاملة
💰 GiveRaise(double amt) → بتزود الراتب .. بس لو amt موجبة
emp| 🟢 | emp1 | Default Constructor | نشوف القيم الافتراضية |
| 🔵 | emp2 | Parameterized ببيانات صح | يتسجل عادي 100% |
| 🔴 | emp3 | عمر 15 سنة | نتأكد إنه بيترفض فعلاً |
| 🟡 | emp4 | GiveRaise | الراتب قبل وبعد الزيادة |
| 🧠 اللغة | 🖥️ IDE | 📦 النوع |
|---|---|---|
| C# (.NET) | Visual Studio Community | Console App |
1️⃣ افتح المشروع بـ Visual Studio Community
2️⃣ تأكد إن Program.cs هو الـ Startup file
3️⃣ دوس F5 ▶️
4️⃣ شوف الـ Console
📦 EMPLOYEE
┣ 📜 Employee.cs → الكلاس بكل مكوناته
┣ 📜 Program.cs → الـ Main + الأربع تجارب
┗ 📜 README.md → إنت هنا 👋
بإشراف د. علي علي سطوحي
Task 1 — OOP Fundamentals in C#
⭐⭐⭐