نظرة عامة على الفئات الجزئية في Visual Basic .NET

click fraud protection

تعد الفصول الجزئية إحدى ميزات VB.NET المستخدمة في كل مكان تقريبًا ، ولكن لا يوجد الكثير مكتوب عنها. قد يكون هذا بسبب عدم وجود الكثير من تطبيقات "المطور" الواضحة لذلك حتى الآن. الاستخدام الأساسي هو في الطريقة التي يتم بها إنشاء حلول ASP.NET و VB.NET في Visual Studio حيث يكون أحد هذه الميزات "المخفية" عادةً.

الفئة الجزئية هي ببساطة تعريف فئة مقسم إلى أكثر من ملف فعلي واحد. لا تحدث الفصول الجزئية فرقًا في المحول البرمجي لأن كل الملفات التي تتكون منها فئة يتم دمجها ببساطة في كيان واحد للمترجم. بما أن الفصول يتم دمجها معًا وتجميعها ، لا يمكنك مزج اللغات. بمعنى ، لا يمكن أن يكون لديك فئة جزئية في C # وآخر في VB. لا يمكنك تمتد التجميعات مع فئات جزئية سواء. كلهم يجب أن يكونوا في نفس التجمع.

يستخدم Visual Studio نفسه كثيرًا ، خاصةً في صفحات الويب حيث يعد مفهومًا رئيسيًا في ملفات "الكود خلف". سنرى كيف يعمل هذا في Visual Studio ، ولكن فهم ما الذي تغير في Visual Studio 2005 عند تقديمه يعد نقطة انطلاق جيدة.

في Visual Studio 2003 ، كان الكود "المخفي" لتطبيق Windows موجودًا في قسم يسمى "علامة إنشاء Windows رمز مصمم Windows" المنطقة. ولكن كان لا يزال هناك كل شيء في نفس الملف وكان من السهل عرض وتغيير الرمز في المنطقة.

instagram viewer
الكل من رمز متاح للتطبيق الخاص بك في .NET. ولكن بما أن بعضًا منها هو رمز يجب عليك لا تعبث أبدًا ، فقد تم الاحتفاظ بها في تلك المنطقة الخفية. (لا يزال من الممكن استخدام المناطق للرمز الخاص بك ، ولكن Visual Studio لم يعد يستخدمها بعد الآن.)

في Visual Studio 2005 (Framework 2.0) ، فعلت Microsoft نفس الشيء تقريبًا ، لكنهم أخفوا الكود في مكان مختلف: فئة جزئية في ملف منفصل. يمكنك أن ترى هذا في أسفل الرسم التوضيحي أدناه:


انقر هنا لعرض الرسم التوضيحي
انقر فوق الزر "السابق" في متصفحك للعودة

أحد اختلافات بناء الجملة بين Visual Basic و C # الآن هو أن C # يتطلب ذلك الكل فصول جزئية تكون مؤهلة مع الكلمة جزئي لكن VB لا. لا يحتوي النموذج الرئيسي في VB.NET على أي تصفيات خاصة. لكن بيان الفئة الافتراضية لتطبيق Windows فارغ يشبه هذا باستخدام C #:

فئة جزئية عامة Form1: نموذج

خيارات تصميم Microsoft في أشياء مثل هذه مثيرة للاهتمام. عندما كتب بول فيك ، مصمم Microsoft VB ، عن اختيار التصميم هذا في مدونته Panopticon الوسطى، استمر النقاش حوله في التعليقات على الصفحات والصفحات.

لنرى كيف يعمل كل هذا مع الكود الحقيقي في الصفحة التالية.

في الصفحة السابقة ، تم شرح مفهوم الطبقات الجزئية. نقوم بتحويل فصل واحد إلى فصلين جزئيين في هذه الصفحة.

فيما يلي فئة سبيل المثال مع طريقة واحدة وخاصية واحدة في مشروع VB.NET

 الفئة العامة CombinedClass. m_Property1 الخاص كسلسلة. Public Sub New (ByVal Value As String) m_Property1 = Value. نهاية الفرعية. الأسلوب الفرعي العام 1 () MessageBox. إظهار (m_Property1) End Sub. خاصية Property1 () كسلسلة. احصل على. إرجاع m_Property1. نهاية الحصول على. قم بتعيين (قيمة ByVal كسلسلة) m_Property1 = قيمة. مجموعة النهاية. نهاية الملكية. نهاية الدرجة 

يمكن استدعاء هذه الفئة (على سبيل المثال ، في رمز الحدث Click لكائن Button) مع الرمز:

Dim ClassInstance As New _. CombinedClass ("حول فئات Visual Basic الجزئية") ClassInstance. طريقة 1()

يمكننا فصل خصائص وأساليب الفصل في ملفات فعلية مختلفة عن طريق إضافة ملفين جديدين إلى المشروع. اسم الملف الفعلي الأول Partial.methods.vb واسم الثاني Partial.properties.vb. يجب أن تكون أسماء الملفات الفعلية مختلفة لكن أسماء الفئات الجزئية ستكون هي نفسها حتى يتمكن Visual Basic من دمجها عند ترجمة الشفرة.

إنه ليس متطلبات بناء جملة ، لكن معظم المبرمجين يتبعون المثال في Visual Studio لاستخدام أسماء "منقطة" لهذه الفئات. على سبيل المثال ، يستخدم Visual Studio الاسم الافتراضي Form1.Designer.vb للفئة جزئية لنموذج ويندوز. تذكر إضافة الكلمة الأساسية الجزئية لكل فصل وتغيير اسم الفئة الداخلية (وليس اسم الملف) إلى نفس الاسم. لقد استخدمت اسم الفئة الداخلية: PartialClass.

يوضح الرسم التوضيحي أدناه كل رمز المثال والرمز قيد التنفيذ.


انقر هنا لعرض الرسم التوضيحي
انقر فوق الزر "السابق" في متصفحك للعودة

Visual Studio "يخفي" فئات جزئية مثل Form1.Designer.vb. في الصفحة التالية ، نتعلم كيفية القيام بذلك باستخدام الفصول الجزئية التي أنشأناها للتو.

تشرح الصفحات السابقة مفهوم الفئات الجزئية وتظهر كيفية ترميزها. لكن Microsoft تستخدم خدعة أخرى مع الفئات الجزئية التي تم إنشاؤها بواسطة Visual Studio. أحد أسباب استخدامها هو فصل منطق التطبيق عن كود واجهة المستخدم (واجهة المستخدم). في مشروع كبير ، قد يتم إنشاء هذين النوعين من الشفرات بواسطة فرق مختلفة. إذا كانت في ملفات مختلفة ، فيمكن إنشاؤها وتحديثها بمزيد من المرونة. لكن Microsoft تخطو خطوة أخرى وتخفي الكود الجزئي في Solution Explorer أيضًا. لنفترض أننا أردنا إخفاء الأساليب والخصائص الفصول الجزئية في هذا المشروع؟ هناك طريقة ، ولكنها ليست واضحة ولا تخبرك Microsoft عن ذلك.

أحد الأسباب التي تجعلك لا ترى استخدام الفئات الجزئية التي أوصت بها Microsoft هو أنها غير مدعومة جيدًا بشكل جيد في Visual Studio حتى الآن. لإخفاء فئات Partial.methods.vb و Partial.properties.vb التي أنشأناها للتو ، على سبيل المثال ، يتطلب تغيير في vbproj ملف. هذا هو ملف XML ذلك لا يتم عرض حتى في مستكشف الحلول. يمكنك العثور عليه باستخدام مستكشف Windows مع الملفات الأخرى. يتم عرض ملف vbproj في الرسم التوضيحي أدناه.


انقر هنا لعرض الرسم التوضيحي
انقر فوق الزر "السابق" في متصفحك للعودة

الطريقة التي سنقوم بها هي إضافة فئة "جذر" فارغة تمامًا (يتم ترك فقط رأس الفصل وبيان فئة النهاية) وجعل كلا الفصلين الجزئيين يعتمدان عليه. لذا أضف فصلاً آخر اسمه PartialClassRoot.vb ثم قم بتغيير الاسم الداخلي إلى PartialClass لمطابقة الأولين. هذه المرة ، لدي ليس استخدم الكلمة الأساسية الجزئية لمطابقة الطريقة التي يعمل بها Visual Studio.

إليكم معرفة قليلة عن XML ستكون مفيدة جدًا. نظرًا لأنه سيتعين تحديث هذا الملف يدويًا ، يتعين عليك بناء جملة XML بشكل صحيح. يمكنك تحرير الملف في أي محرر نصوص ASCII - يعمل برنامج Notepad بشكل جيد - أو في محرر XML. اتضح أن لديك واحدة رائعة في Visual Studio وهذا هو ما يظهر في الرسم التوضيحي أدناه. لكن لا يمكنك تحرير ملف vbproj في نفس الوقت الذي تقوم فيه بتحرير المشروع الموجود فيه. قم بإغلاق المشروع وفتح ملف vbproj فقط. يجب أن ترى الملف معروضًا في نافذة التعديل كما هو موضح في الرسم التوضيحي أدناه.

(لاحظ ال ترجمة عناصر لكل فئة. معتمد على يجب إضافة العناصر الفرعية تمامًا كما هو موضح في الرسم التوضيحي أدناه. تم إنشاء هذا الرسم التوضيحي في VB 2005 ولكن تم اختباره في VB 2008 أيضًا.)


انقر هنا لعرض الرسم التوضيحي
انقر فوق الزر "السابق" في متصفحك للعودة

بالنسبة للكثيرين منا ، ربما يكفي أن نعرف أن هناك فصولاً جزئية موجودة ، فقط حتى نعرف ما هي عليه عندما نحاول تعقب الأخطاء في المستقبل. لتطوير الأنظمة الكبيرة والمعقدة ، يمكن أن تكون معجزة صغيرة لأنها يمكن أن تساعد في تنظيم التعليمات البرمجية بطرق كانت مستحيلة من قبل. (يمكنك أيضًا إنشاء هياكل جزئية وواجهات جزئية!) لكن بعض الأشخاص توصلوا إلى أن Microsoft اخترعتها فقط لأسباب داخلية - لجعل إنشاء التعليمات البرمجية الخاصة بهم يعمل بشكل أفضل. حتى أن المؤلف Paul Kimmel قد ذهب إلى أبعد من ذلك يوحي بأن Microsoft قد أنشأت بالفعل فصولاً جزئية لخفض تكاليفها عن طريق تسهيل الاستعانة بمصادر خارجية في أعمال التطوير في جميع أنحاء العالم.

يمكن. إنه نوع الشيء الذي يمكنهم فعله.

instagram story viewer