الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف تقوم بإضافة إجراءاتك الخاصة إلى مجال الأسماء My

مغلق
بدأه محمد سامر أبو سلو في 14 أكتوبر 2006 · 4 رد · 686 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لإضافة فئة جديدة إلى مجال الأسماء My كل ما عليك عمله هو إضافة كتلة Namespace تحمل اسم My فإذا أردنا إضافة فئة جديدة إلى مجال الأسماء My مثلا TestClass يحتوي على دالة JustForTest سنقوم ببساطة بكتابة الكود التالي

Namespace My

	Public Class TestClass

		Public Shared Function JustForTest(ByVal SomeText As String) As String
			Return SomeText & ", " & Now.ToString("dddd")
		End Function

	End Class

End Namespace

و أصبح الآن بإمكاننا استخدامه كبقية الفئات المودودة سابقا في مجال الأسماء My

		TextBox2.Text = My.TestClass.JustForTest(TextBox1.Text)

ولكن تجدر الملاحظة هنا أن الدالات التي ستستخدمها هنا يجب أن تكون Shared أو أن تقوم بتضمينها في Module بدلا من Class وذلك لأن جميع الدالات والخصائص الموجود في Module تكون Shared دائما.

كما يمكنك اعتماد على الميزة الجديدة وهي الفئات الجزئية Partial Class أيضا إضافة عناصر أخرى لبعض فئات مجال الأسماء My مثل الفئة My.Computer أو الفئة My.Application ولفعل ذلك نقوم بإنشاء فئة جزئية بالاسم الصحيح وإضافة العناصر الجديدة التي نريد حيث يجب عليك تعريف هذه الفئة باستخدام Friend حتى تتطابق مع الفئة الأصلية الموجودة سابقا

Namespace My

	' Extend My.Application Class
	Partial Friend Class MyApplication

		Public Function AppTest() As String
			Return "For Test Purposes"
		End Function

	End Class


End Namespace

واستخدامه أيضا كبقية الفئات الموجودة سابقا

		TextBox3.Text = My.Application.AppTest

وبهذا يصبح الكود الكامل لمثالنا هنا كالتالي

Public Class Form1

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 

Button1.Click
		TextBox2.Text = My.TestClass.JustForTest(TextBox1.Text)
		TextBox3.Text = My.Application.AppTest
	End Sub

End Class

Namespace My

	' Add New Class
	Public Class TestClass

		Public Shared Function JustForTest(ByVal SomeText As String) As String
			Return SomeText & ",   " & Now.ToString("dddd dd/MM/yyyy")
		End Function

	End Class

	' Extend My.Application Class
	Partial Friend Class MyApplication

		Public Function AppTest() As String
			Return "For Test Purposes"
		End Function

	End Class


End Namespace

ويمكنك الآن توسيع مجال الأسماء My بحسب حاجتك وهذا ليس محدودا بتطبيق معين حيث يمكنك إنشاء مكتبة Class Library خاصة بك تضيف بعض الأشياء لمجال الأسماء My واستخدامها في تطبيقاتك وذلك بإضافة مرجع لهذه المكتبة من داخل التطبيق

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#3

بارك الله فيك اخى محمد على المعلومة،،،

ولكن الا ترى معى انه هناك جانب سلبى لهذا الموضوع وهو انه لو كنت تطور مكتبات LIBRARY او componentفانت بهذه الطريقة تقصر من استخدامها على مبرمجى VB لان الكائن او فضاء الاسماءMY لا تجده فى C# او اى لغة اخرى....

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#4
SOLO.NET كتب:
بارك الله فيك اخى محمد على المعلومة،،،

ولكن الا ترى معى انه هناك جانب سلبى لهذا الموضوع وهو انه لو كنت تطور مكتبات LIBRARY او componentفانت بهذه الطريقة تقصر من استخدامها على مبرمجى VB لان الكائن او فضاء الاسماءMY لا تجده فى C# او اى لغة اخرى....

كلامك فيه وجهة نظر

بس كمان في ملاحظة

اقتباس
ولكن تجدر الملاحظة هنا أن الدالات التي ستستخدمها هنا يجب أن تكون Shared أو أن تقوم بتضمينها في Module بدلا من Class وذلك لأن جميع الدالات والخصائص الموجود في Module تكون Shared دائما.

وبهذا فلن تضمن جميع أنواع الإجراءات في هذه المكتبة فقط بعض الاجراءات العامة - مجالها shared - كي لاتضطر لعمل Instancing لمجال الأسماء My وتفقده مرونته لأن بيئة التطوير لاتعمل Instancing لمجال الأسماء My في الوضع الطبيعي

ولهذا لاأعتقد باستخدام هذه الطريقة لتطوير Component فقط لبعض الإجراءات لغرض خاص

تم تعديل هذه المشاركة بواسطة samerselo في 14 أكتوبر 2006 في 13:34

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#5
اقتباس
بارك الله فيك اخى محمد على المعلومة،،،

ولكن الا ترى معى انه هناك جانب سلبى لهذا الموضوع وهو انه لو كنت تطور مكتبات LIBRARY او componentفانت بهذه الطريقة تقصر من استخدامها على مبرمجى VB لان الكائن او فضاء الاسماءMY لا تجده فى C# او اى لغة اخرى....

لا أظن ذلك

لأنه حتى لو لم تعمل Shared لل Methods فعندما تريد ان تستعمله في لغة اخرى سيعرف الكلاس باسم My كأي كلاس جديد و لن يكون هناك اي مشكل

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…