#️⃣ شرح C#

التغليف ومُعدّلات الوصول

مُعدّلات الوصول

المُعدّلالوصول
publicمن أي مكان
privateداخل الصنف فقط (الافتراضي للأعضاء)
protectedالصنف والأصناف الوارثة
internalداخل نفس المشروع (Assembly)

التغليف

أخفِ الحقول واكشف خصائص متحكّمًا بها:

class BankAccount
{
    private decimal balance;   // محمي

    public decimal Balance => balance;   // قراءة فقط

    public void Deposit(decimal amount)
    {
        if (amount > 0) balance += amount;
    }

    public bool Withdraw(decimal amount)
    {
        if (amount <= balance)
        {
            balance -= amount;
            return true;
        }
        return false;
    }
}

الاستخدام:

var acc = new BankAccount();
acc.Deposit(500);
acc.Withdraw(200);
Console.WriteLine(acc.Balance);   // 300
// acc.balance = -1; ❌ غير ممكن (private)

لماذا التغليف؟

  • يمنع الحالات غير الصالحة.
  • يتيح تغيير التنفيذ الداخلي دون كسر الكود الخارجي.

🎯 التالي: الوراثة (Inheritance).