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

كيف انشاء وسيطات اختيارية

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

السلام عليكم ..

اخواني عندي سؤالين فقط ..

اللسؤال الاول :

عند انشاء مكتبة dll كيف يمكن جعل الباراميترات في الدالات التي انشئها بارميترات اختيارية اي يمكن كتابتها ويمكن تركها والاكتفاء بالباراميترات الاساسية مثل المكتبات الموجودة مسبقا في الفيجوال استديو مثل دالة مربع الرسالة يمكن تحديد ايقونة المربع ويمكن تركها ؟؟

السؤال الثاني :

في نفس الموضوع ..

كيف يمكن ان اكتب وصف للدالة او مساعدة عن الباراميترات بحيث عند استدعائها يظهر في الشريط الاصفر ليوضح عمل الدالة والباراميترات ؟؟

اتمنى ان اسئلتي تكون واضحة وانا جاهز لاي توضيح اضافي ..

شكرا لكم

#2

السلام عليكم،،

للسؤال الاول استخدم الكلمة المحجوزة Optional قبل الوسيطة كما يشترط ان تكون الوسيطات الاختيارية هى اخر الوسيطات اى لاتاتى قبلها وسيطة اجبارية كما يجب اعطاء قيم افتراضيا للوسيطات الاختيارية فى حال تجاهلها المستخدم

Public Function Method(ByVal a As String,  ByVal b As String , Optional ByVal x As String="" ) As String
		'do somthing
	End Function

السؤال الثانى: ضع ثلاث من هذه ''' وستجد المحرر قام بتجهيز الوسومxml لكتابة ملخص حول الطريقة ووسيطاتها

 ''' <summary>
	''' 
	''' </summary>
	''' <param name="a">used for somthing</param>
	''' <param name="b">used for somthing</param>
	''' <param name="x">optional param used for somthing</param>
	''' <returns></returns>
	''' <remarks></remarks>
	Public Function Method(ByVal a As String,  ByVal b As String , Optional ByVal x As String="" ) As String
		'do somthing

End Function

تم تعديل هذه المشاركة بواسطة SOLO.NET في 17 يوليو 2006 في 17:02

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

#3

السلام عليكم

بالنسبة للسؤال الاول أظنه أقرب إلى Overloading منه إلى Optional وهو ظاهر من خلال السؤال والله أعلم.

هذه الطريقة تكون بهذا الشكل.

Public Class SimpleMessage

	''' <param name="msg">write the only message here.</param>
	Public Overloads Function ShowMessage(ByVal msg As String) As String
		'do something
	End Function


	''' <param name="msg">write the message here</param>
	''' <param name="Title">write the title of message here</param>
	Public Overloads Function ShowMessage(ByVal msg As String, ByVal Title As String) As String
		'do something
	End Function



End Class

اما السؤال الثاني فكما نوه عليك اخونا solo.net

ويمكنك عمله من خلال الـ Class Diagram بحيث تختار من القائمة المنسدلة كما تشير الصورة التالية.

بعد ذلك تضغط على الـ Class فيه الذي تود وضع ارشادات تعليمية بشأن الممررات.

بالتوفيق إن شاء الله.

...

على فكرة أخي Solo.net تراك طولت الغيبة علينا ( أرحم اخوانك شويه). الامور بدأت تتفلت من ايدينا من دونك يا أخي العزيز.

السلام عليكم

post-17025-1185561835_thumb.jpg

تم تعديل هذه المشاركة بواسطة الشهاب الحارق في 27 يوليو 2007 في 21:44

في المثال يتضح المقال

#4
اقتباس
بالنسبة للسؤال الاول أظنه أقرب إلى Overloading منه إلى Optional وهو ظاهر من خلال السؤال والله أعلم.

احسنت اخى الغملاسى،،فهذا هى الاجابة الصحيحة،،ولم انتبه للسؤال جيدا.

اقتباس
على فكرة أخي Solo.net تراك طولت الغيبة علينا ( أرحم اخوانك شويه). الامور بدأت تتفلت من ايدينا من دونك يا أخي العزيز.

السلام عليكم

التمس لى العذر اخى العزيز ،واعلم العبء الذى تتحمله وفقك الله واعانك،،وإن شاء الله سنعود كالعهد السابق

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

#5

اشكركم اساتذتي SOLO.NET والغملاسي ...

لكن بصراحة صار عند التباس في جواب السؤال الاول ..!!

فياريت توضحون لي الفرق بين ال Optional وبين ال Overloading ؟؟

ولكم كل الشكر

#6

السلام عليكم ،،

اعادة التعريف overloads هو من احد مبادىء ومميزات البرمجة الشيئيةOOP وهى تمكنك من تسمية عدةوsub, Function بنفس الاسم ولكن بوظائف مختلفة

يتم عمل هذا بتغيير نوع الوسيطة Parameter او عددها ،،، قد تحتاجها مثلا لعمل اجراء يقوم بالبحث عن الطلبة تسميه SearchStudent ولكن قد تحتاج للبحث مرة بالاسم ومرة بالرقم،، فى هذه الحالة اما ان تنشئ اجراءين مختلفين SearchStudentByName وSearchStudentByID او تقوم بعمل اجراء واحد وتقم به بعمل اختبارات للقيمة المرسلة لتعرف اذا كانت نصا او رقما،،ولكن بتطبيق مبدأ اعادة التعريف تقوم بانشاء اجرائين مختلفين وفى نفس الوقت يحملان نفس الاسم

Friend Overloads Function SearchStudent(ByVal id As Int32) As DataSet
		'code
	End Function
	Friend Overloads Function SearchStudent(ByVal name As String) As DataSet
		'code
	End Function

بالنسبة للوسيطات الاختيارية Optional تستخدم لعمل وسيطات يمكن للمستخدم تجاهلها ويكون لها قيمة افتراضية كان مثلا نعمل اجراء يقوم بقراءة ملف ويحوى على وسيطتين الاولى المسار والثانى من النوع البوليانى وتكون اختيارة وقيمتها الافتراضية هى TRUE وتعنى اغلاق الملف بعد قراءته فى حال قام المستخدم بارسال الوسيطة الثانية للاجراء او ارسال true فلا فرق،،ويمكنه تجاهلها وسيتم اغلاق الملف،،

 Friend Sub ReadFile(ByVal name As String, Optional ByVal close As Boolean = True)
		'code
	End Sub

بالتوفيق

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

#8

اخوي الغملاسي ..

حاولت تطبيق المثال الذي ذكرته ولكن لم اجد الخيارات المذكورة !!

فهل المثال الموجود معمول ب 2005 ام 2003 ؟؟

لاني اعمل على 2003

وشكرا

#9

السلام عليكم

هو على 2005 يا غالي.

في المثال يتضح المقال

#11

الحل بارك الله فيك أن تقتني النسخة 2005

السبب أن هذه ميزة أُضيفت في النسخة 2005

وليس هنالك ثمة طريقة للإستفادة منها في 2003 والله اعلم.

على كل حال أخي : لا تضيع مزيداً من الوقت في 2003

قد لا تصدقني ان قلت لك ان ما تبنية في شهر على 2003 ربما لا يحتاج منك بضعة ايام في 2005

السلام عليكم.

في المثال يتضح المقال

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

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

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

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

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

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