"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تؤثر معدلات الوصول (العامة والخاصة والمحمية) والمعدل الثابت على إمكانية الوصول إلى الأعضاء في C#؟

كيف تؤثر معدلات الوصول (العامة والخاصة والمحمية) والمعدل الثابت على إمكانية الوصول إلى الأعضاء في C#؟

نشر في 2025-03-23
تصفح:939

How Do Access Modifiers (public, private, protected) and the Static Modifier Affect Member Accessibility in C#?

فهم الوصول والمعدلات الثابتة في C#

c# يستخدم معدلات الوصول ( public ، private ، محمية ) للتحكم في إمكانية الوصول إلى الأعضاء داخل الفئات والهياكل. تحدد هذه المعدلات النطاق الذي يمكن من خلاله الوصول إلى عضو في الفصل (الحقل ، الممتلكات ، الطريقة). يضيف المعدل ثابت طبقة أخرى من التحكم ، وتحديد الأعضاء الذين ينتمون إلى الفصل نفسه ، وليس مثيلات فردية.

الوصول إلى المعدلات:

  • عام : أعضاء أعلنوا باسم عام ] يمكن الوصول إليها من أي مكان - داخل نفس التجميع أو أي مجموعة أخرى تشير إليها. هذا يوفر أوسع إمكانية وصول.

  • خاصة : أعضاء تم إعلانهم خاص فقط من داخل الفصل حيث يتم تعريفهم. وهذا يفرض تغليف قوي وبيانات مختبئة.

  • محمية : أعضاء تم إعلانهم باسم محمية يمكن الوصول إليها داخل الفصل حيث يتم تعريفها ، وأيضًا ضمن الفصول المشتقة (الفئات التي ترث من الفئة الأصلية). هذا يسمح بالميراث والتوسيع للوظائف.

  • لا يوجد تعديل (افتراضي): إذا لم يتم تحديد معدّل وصول ، يكون مستوى الوصول الافتراضي عمومًا داخلي . هذا يعني أن العضو لا يمكن الوصول إليه إلا من داخل نفس التجميع (المشروع) حيث يتم تعريفه.

معدل ثابت:

يشير المعدل الثابت إلى أن أحد الأعضاء ينتمي إلى الفصل نفسه ، وليس إلى أي مثيل محدد للفصل. يتم مشاركة الأعضاء الثابتة في جميع الحالات. يتم الوصول إلى الأعضاء الثابتة باستخدام اسم الفصل ، وليس مثيل كائن. لا يمكن إنشاء فصول ثابتة.

مثال توضيحي:

public class ExampleClass
{
    private int privateVar;
    protected int protectedVar;
    public int publicVar;
    static int staticVar;

    public void PublicMethod() { }
    private void PrivateMethod() { }
    protected void ProtectedMethod() { }
    static void StaticMethod() { }

    public static void Main(string[] args)
    {
        ExampleClass instance = new ExampleClass();
        instance.publicVar = 10;
        instance.PublicMethod();
        // instance.privateVar = 20; // Error: private
        // instance.PrivateMethod(); // Error: private

        ExampleClass.staticVar = 5;
        ExampleClass.StaticMethod();
    }
}

في هذا المثال ، publicvar و PublicMethod يمكن الوصول إليها بحرية. privatevar و privatemethod يمكن الوصول إليها فقط داخل expleclass . protectedvar و محمية يمكن الوصول إليها داخل exampleclass وأي فئات ترث منها. staticvar و يتم الوصول إلى StaticMethod مباشرة من خلال اسم الفصل.

التطبيقات العملية:

معدلات الوصول أمر أساسي لمبادئ التصميم الموجهة للكائنات مثل التغليف والتجريد. أنها تساعد في التحكم في كيفية تفاعل أجزاء مختلفة من التطبيق الخاص بك ، وتعزيز قابلية صيانة الكود وتقليل الآثار الجانبية غير المقصودة. الأعضاء الثابتون مفيدون لوظائف الأداة المساعدة أو الثوابت التي لا تتطلب مثيل كائن.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3