6 - الدرس السادس-1- الفئة الجزئية Partial classes

Mammeri Toufikمنذ 7 سنوات

فئات جزئية . Partial Classes

لا يوجد تعريف أصطلاحي للفئة الجزئية لكن لها مفهوم كل فئة كما مر معنا في تعريف الفئة برمجيا ونفهم أنها جزء من أصل أي هي من فئة أكبر منها وأصل لها الذي يهمنا في ذلك هو فائدتها ومن خلال ذلك يمكن لك أن تفهمها شعوريا وتصوريا.

1. فائدة الفئة الجزئية برمجيا.

2. إنشاء فئة جزئية وتوابعه.

3. الدالة الجزئية.

 

1. فائدة الفئة الجزئية برمجيا.

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

تسمح الفئات الجزئية لأعضاء الفئة الواحدة  أن تقسم بين  عدة ملفات للشفرة المصدر. هذه الملفات متعددة يتم تجميعها في فئة واحدة كما لو كانت مجمعة اصلا فيها .

هناك حالات عديدة يكون فيها تقسيم  الفئة الواحدة مطلوبا:
1.عند العمل على مشاريع كبيرة، تقسيم الفئة على ملفات منفصلة يمكن المبرمجين  العمل عليها في نفس الوقت.
2.عند العمل مع المصادر المنشأة تلقائيا، يمكن إضافة التعليمات البرمجية إلى الفئة دون الحاجة إلى إعادة إنشاء ملف المصدر.
3.يستخدم Visual Studio هذا الأسلوب عندما يقوم بإنشاء  Windows Forms والتعليمات البرمجية لبرنامج تضمين خدمة الويب وهكذا.
 4.يمكنك إنشاء تعليمات برمجية تقوم باستخدام هذه الفئات دون الحاجة إلى تعديل الملف الذي تم إنشاؤه بواسطة برنامج Visual Studio.


لتقسيم  فئة نستخدم الكلمة الأساسية  Partial قبل الكلاس كما هو موضح هنا: 

مثال1: 


public partial class A
{
    public void DoWork()
    {
    }
}

public partial class A
{
    public void GoToLunch()
    {
    }
}

* ما عليك هو أن تلاحظ مكان الفئة الجزئية حيث كلمة partial  فقط لا تفكر في غير ذلك لا تفكر في كلمة public  ولا في كلمة  void  ولا غيرها ستفهم كل ذلك من بعد.

* في هذا النوع من الفئات ثمة ما يسمى بعملية التحويل البرمجي والدمج لا ندرسه في أبتدائنا هذا .

*في هذا النوع من الفئات ثمة عملية استخدام دالة جزئية منها لكن تحت فئة أخرى وفق معايير لا ندرسها في ابتدائنا هذا كما في لمثال الآتي على سي شارب 2015

مثال2: 


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class A
    {
        private int x;
        private int y;

        public A(int x, int y)
        {
            this.x = x;
            this.y = y;
        }
    }

    public partial class B
    {
        public void PrintA()
        {
            Console.WriteLine("A: {0},{1}", x, y);
        }

    }

}

تتبع حيث يوجد الإسم A تجد أن A جزئية public partial class A  لا شك أن الدالة PrintA() التي تعني أطبع. هي عضو للفئة الجزئية A  ورغم ذلك أستعملناها تحت الفئة الجزئيةB 

لا يهمك ما داخل الكود كله الذي يهمك هو ما أردنا تفهيمك إياه حتى لا يحصل لذهنك فشل أو جمود.

 

كذلك لهاته الفئة ميزة الإندماج كما في المثال التالي:

المثال3:


namespace WindowsFormsApplication4
{
    public class Form1 : Form
    {
        [SerializableAttribute]
        partial class Moon { }

        [ObsoleteAttribute]
        partial class Moon { }
    }
}

العبارة SerializableAttribute تعني أن الفئة تقبل التسلسل ولا تقبل التوريث   وهي كذلك دالةو العبارة ObsoleteAttribute فئة تعني بالعناصر التي لم تستخدم كالدوال ونحوها 

ولا يهمك هذا بل أردت أن تكون على نظرة عامة لهاته المبادئ التي تحتاجها بعد إ، شاء الله تعالى.

نكمل: سندمج أو تتداخل الفئتين على الصورة التالية:

مثال4


[SerializableAttribute]
[ObsoleteAttribute]
class Moon { }

* طريقة أخرى للتداخل:

مثال5


partial class Country : Egypt, algria { }
partial class Country : saudia { }

لاحظ التداخل:

مثال6


partial class Country : Egypt,algria,saudia{ }

 

* أعتذر عن التعطل سنكمل إن شاء الله تعالى بعد رمضان إن شاء الله تعالى.

* هاقد انتهى رمضان وشوال ... عذروني عن التأخر لكثرة اشغالي. واود التنبيه انه سيكون درس كل اسبوع بدل ثلاث دروس نكمل ان شاء الله تعالى الدرس السابع وهو تتمة للدرس السادس.

 

 

 

كلمات دليلية:
0
إعجاب
3020
مشاهدات
0
مشاركة
0
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !