معدّلات الوصول (المحددات) في C# مع أمثلة البرامج
ما هو معدل الوصول (المحدد) في C#؟
معدِّلات الوصول أو محددات الوصول في C# هي الكلمات الأساسية المستخدمة لتحديد رؤية خاصية أو أسلوب فئة. يتم استخدامه عندما لا تريد أن ترى البرامج الأخرى خصائص أو أساليب الفصل الدراسي. تقوم معدّلات الوصول بتقييد الوصول بحيث لا تتمكن البرامج الأخرى من رؤية خصائص أو أساليب فئة ما.
هناك 6 أنواع من معدّلات الوصول في C#:
- خاص
- عام
- محمي
- داخلي
- الداخلية المحمية
- محمية خاصة
سوف نتعرف على معدّلات الوصول الرئيسية في لغة C# مع أمثلة البرامج كما هو موضح أدناه.
معدّلات الوصول الخاصة في C#
عندما يتم إرفاق معدل الوصول الخاص إلى خاصية أو طريقة، فهذا ي��ني أنه لا يمكن الوصول إلى هؤلاء الأعضاء من أي برنامج خارجي.
مثال على معدّل الوصول الخاص
لنأخذ مثالاً ونرى ما يحدث عندما نستخدم معدّل الوصول الخاص.
لنقم بتعديل الكود الحالي في ملف Tutorial.cs الخاص بنا. في طريقة SetTutorial، دعنا نغير الكلمة الأساسية العامة إلى خاصة.
الآن دعنا ننتقل إلى ملف Program.cs الخاص بنا. ستلاحظ وجود خط أحمر متعرج أسفل طريقة SetTutorial.
نظرًا لأننا أعلنا الآن أن طريقة SetTutorial خاصة في فئة Tutorial الخاصة بنا، فقد اكتشف Visual Studio هذا الأمر. وأخبر المستخدم من خلال تسليط الضوء عليه أن هذه الطريقة لن تعمل الآن من ملف Program.cs.
معدّلات الوصول العامة في C#
عندما يتم إرفاق معدل الوصول العام إلى خاصية أو طريقة، فهذا يعني أنه يمكن الوصول إلى هؤلاء الأعضاء من أي برنامج خارجي. لقد رأينا هذا بالفعل في أمثلةنا السابقة.
مثال على معدّل الوصول العام
نظرًا لأننا قمنا بتعريف أساليبنا على أنها عامة في فئة البرنامج التعليمي، فيمكن الوصول إليها من ملف Program.cs.
معدّلات الوصول المحمية في C#
عندما يتم إرفاق معدل الوصول المحمي بخاصية أو طريقة، فهذا يعني أنه لا يمكن الوصول إلى هؤلاء الأعضاء إلا عن طريق الطبقات الموروثة من التيار فئة. سيتم شرح ذلك بمزيد من التفصيل في فئة الميراث.
معدّلات الوصول الداخلي في C#
عندما يتم إرفاق معدّل الوصول الداخلي إلى خاصية أو أسلوب، يمكن الوصول إلى هؤلاء الأعضاء فقط عن طريق برنامج داخلي وليس عن طريق برنامج خارجي.
منشئ C #
C# يتم استخدام المنشئين لتهيئة قيم حقول الفئة عند إنشاء الكائنات المقابلة لها. المنشئ هو أسلوب له نفس اسم الفئة. إذا تم تعريف المُنشئ في فئة ما، فسوف يوفر الطريقة الأولى التي يتم استدعاؤها عند إنشاء كائن. لنفترض أنه إذا كان لدينا فئة تسمى الموظف. سيتم أيضًا تسمية طريقة المنشئ باسم الموظف ().
هناك أمور أساسية يجب ملاحظتها فيما يتعلق بطرق البناء
- يجب أن يكون معدل الوصول الافتراضي لـ C# للمنشئ عامًا.
- يجب ألا يكون هناك نوع إرجاع لأسلوب المُنشئ.
مثال على منشئ C#
دعونا الآن نرى كيف يمكننا دمج مستخدم المنشئات في الكود الخاص بنا. سنستخدم المنشئات لتهيئة حقلي TutorialID وTutorialName لبعض القيم الافتراضية عند إنشاء الكائن.
الخطوة 1) الخطوة الأولى هي إنشاء المنشئ لفصلنا التعليمي. في هذه الخطوة، نضيف الكود أدناه إلى ملف Tutorial.cs.
شرح الكود :-
- نقوم أولاً بإضافة طريقة جديدة لها نفس اسم الفئة. نظرًا لأنه يحمل نفس اسم الفئة، فإن C# يعامل هذا كأسلوب منشئ. والآن، عندما تقوم طريقة الاستدعاء بإنشاء كائن من هذه الفئة، سيتم استدعاء هذه الطريقة افتراضيًا.
- في مُنشئ البرنامج التعليمي، نقوم بتعيين قيمة TutorialID على 0 وTutorialName على "Default". لذا، كلما تم إنشاء كائن، ستحتوي هذه الحقول دائمًا على هذه القيم الافتراضية.
لننتقل الآن إلى ملف Program.cs ونزيل السطر الذي يستدعي طريقة SetTutorial. هذا لأننا نريد فقط أن نرى كيف يعمل المنشئ.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Tutorial
{
public int TutorialID;
public string TutorialName;
public Tutorial()
{
TutorialID=0;
TutorialName="Default";
}
public void SetTutorial(int pID,string pName)
{
TutorialID=pID;
TutorialName=pName;
}
public String GetTutorial()
{
return TutorialName;
}
static void Main(string[] args)
{
Tutorial pTutor=new Tutorial();
Console.WriteLine(pTutor.GetTutorial());
Console.ReadKey();
}
}
}
شرح الكود :-
- الخطوة الأولى هي إنشاء كائن لفئة البرنامج التعليمي. ويتم ذلك عبر الكلمة الأساسية "الجديدة".
- نستخدم طريقة GetTutorial من فئة Tutorial للحصول على TutorialName. ثم يتم عرض هذا على وحدة التحكم عبر طريقة Console.WriteLine.
إذا تم إدخال الكود أعلاه بشكل صحيح وتم تنفيذ البرنامج، سيتم عرض الإخراج التالي.
الإخراج:
من المخرجات، يمكننا أن نرى أنه تم بالفعل استدعاء المنشئ وأنه تم تعيين قيمة TutorialName على "Default".
ملاحظة: هنا يتم جلب القيمة "الافتراضية" من المُنشئ.
ملخص
- يتم استخدام معدّلات الوصول C# أو محددات الوصول لتحديد إمكانية رؤية خاصية أو أسلوب فئة.
- عندما يتم إرفاق معدل الوصول الخاص إلى خاصية أو طريقة، فهذا يعني أنه لا يمكن الوصول إلى هؤلاء الأعضاء من أي برنامج خارجي.
- عندما يتم إرفاق معدل الوصول العام إلى خاصية أو طريقة، فهذا يعني أنه يمكن الوصول إلى هؤلاء الأعضاء من أي برنامج خارجي.
- عندما يتم إرفاق معدل الوصول المحمي بخاصية أو طريقة، فهذا يعني أنه لا يمكن الوصول إلى هؤلاء الأعضاء إلا عن طريق الفئات الموروثة من الفئة الحالية.
- عندما يتم إرفاق معدّل الوصول الداخلي إلى خاصية أو أسلوب، يمكن الوصول إلى هؤلاء الأعضاء فقط عن طريق برنامج داخلي وليس عن طريق برنامج خارجي.
- يتم استخدام منشئي C# لتهيئة قيم حقول الفئة عند إنشاء الكائنات المقابلة لها.






