أعضاء الفئة (Class Members) في لغة C#

في لغة C#، الفئة (Class) هي قالب لإنشاء كائنات (Objects)، وتتكون من مجموعة من الأعضاء (Members) التي تحدد سلوك وحالة الكائنات التي يتم إنشاؤها من هذه الفئة. هذه الأعضاء تشمل:

1. الحقول (Fields):

  • هي متغيرات تُعرّف داخل الفئة وتُستخدم لتخزين البيانات المتعلقة بالكائنات.
  • تُمثل حالة الكائن.
  • يمكن تحديد مستوى الوصول إليها (Access Modifiers) لتحديد كيفية الوصول إليها من خارج الفئة (مثل public، private، protected).

مثال:

C#
public class Car
{
public string Model; // حقل عام (Public)
private int Year; // حقل خاص (Private)
}

2. الدوال (Methods):

  • هي كتل من التعليمات البرمجية التي تُنفذ إجراءات معينة.
  • تُمثل سلوك الكائن.
  • يمكن أن تأخذ مُدخلات (Parameters) وتُرجع قيمة (Return Value).

مثال:

C#
public class Car
{
public void StartEngine()
{
// تعليمات تشغيل المحرك
}

public int GetYear()
{
return Year;
}
}

3. الخصائص (Properties):

  • هي وسيلة للوصول إلى الحقول بطريقة مُتحكمة.
  • تُوفر آليات للتحقق من صحة البيانات قبل تعيينها للحقول، أو إجراء عمليات أخرى عند الوصول إلى قيمة الحقل.
  • تتكون من جزأين: get لقراءة قيمة الحقل، و set لتعيين قيمة جديدة له.

مثال:

C#
public class Car
{
private int year;

public int Year
{
get { return year; }
set
{
if (value > 1900 && value <= DateTime.Now.Year) // التحقق من صحة السنة
{
year = value;
}
}
}
}

4. المنشئات (Constructors):

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

مثال:

C#
public class Car
{
public string Model;
public int Year;

public Car(string model, int year) // مُنشئ بمُدخلات
{
Model = model;
Year = year;
}

public Car() // مُنشئ افتراضي (بدون مُدخلات)
{
Model = "Unknown";
Year = DateTime.Now.Year;
}
}

5. الأحداث (Events):

  • هي آليات لإشعار الأجزاء الأخرى من البرنامج بحدوث شيء معين داخل الكائن.
  • تُستخدم بشكل شائع في واجهات المستخدم الرسومية (GUI) للتعامل مع تفاعلات المستخدم (مثل النقر على زر).

مثال:

C#
public class Button
{
public event EventHandler Clicked;

public void OnClick()
{
if (Clicked != null)
{
Clicked(this, EventArgs.Empty);
}
}
}

6. الثوابت (Constants):

  • هي قيم ثابتة لا يمكن تغييرها بعد تعريفها.
  • تُستخدم لتمثيل قيم لا تتغير أبدًا (مثل قيمة Pi).

مثال:

C#
public class MathConstants
{
public const double PI = 3.14159;
}

7. أنواع البيانات المُتداخلة (Nested Types):

  • هي أنواع بيانات (مثل فئات أو هياكل) تُعرّف داخل فئة أخرى.
  • تُستخدم لتجميع أنواع البيانات ذات الصلة معًا.

مثال:

C#
public class OuterClass
{
public class InnerClass
{
// أعضاء الفئة الداخلية
}
}

8. المُنهيات (Finalizers):

  • هي دوال خاصة تُنفذ بواسطة مُجمع القمامة (Garbage Collector) قبل إزالة الكائن من الذاكرة.
  • تُستخدم لتحرير الموارد غير المُدارة (Unmanaged Resources) التي يستخدمها الكائن.

مثال:

C#
public class MyClass
{
~MyClass()
{
// تعليمات تحرير الموارد
}
}

هذه هي أهم أعضاء الفئة في لغة C#. فهم هذه الأعضاء وكيفية استخدامها يُعتبر أساسيًا في البرمجة الشيئية (Object-Oriented Programming) باستخدام C#.

ملاحظات إضافية:

  • يُمكن استخدام مُعدِّلات الوصول (Access Modifiers) مثل public، private، protected، و internal لتحديد مستوى الوصول إلى أعضاء الفئة.
  • يُمكن استخدام الكلمة المفتاحية readonly لجعل الحقل للقراءة فقط بعد تهيئته