مالفرق بين byval , و by ref
ماهو ال polymorphism
ماهو interface
مالفرق بين byval , و by ref
ماهو ال polymorphism
ماهو interface
السلام عليكــم ورحمـة الله وبركاتــه ،،
اقتباسمالفرق بين byval , و by ref
كلمتين محجوزتين (KeyWord ) تستخدم في تمرير المتغيرات إلى دالة ما (Function) , الفرق بينهم كالتالي :
مثال ..
Public Function Add(ByVal Num1 As Integer,ByVal Num2 As Integer) As Integer
هنا سيكون المتغيرين Num1 وNum2 في هذه الدالة عبارة عن نسخة من المتغيرين الأساسين الممررين إلى الـ Funcion Add , بالتالي لن يحدث أي تغير في المتغيرين الأساسين , التغير فقط يتم على قيم الـ Num1 و Num2 ..
حسناً , ماذا لو أردت تغيير قيم المتغيرين الأساسين الذين مررناهما ؟ هل الـ ByVal ستنفع ؟!
بالطبع لا ,
في هذه الحالة نستخدم الـ By Ref ,
مثال ..
Public Function Add(ByRef Num1 As Integer,ByRef Num2 As Integer) As Integer
عند إستدعاء هذه الدالة , وبعد إجراء عملية الجمع ستتغير القيم الممررة إلى الـ Funcion Add ,
أتمنى يكون واضح ..
وبالتوفيق ..
تم تعديل هذه المشاركة بواسطة إشراقــه فجــر في 21 نوفمبر 2009 في 20:06
سبحآن الله وبحمده .. سبحآن الله العظيم .. ,
طيب وبقية الاسئلة
Polymorphism هي احد المبادئ الاربعة لاستعمال OOP وتعني بالعربي "ارجو ان ترجمتي دقيقة" هي القدرة على استعمال نفس الخصائص والمميزات لخلق Object او كائن اخر يشبهه في التركيب ويختلف عنة قي المميزات.
افترص ان لديك class تحتوي على ما يلي
Public Class Human Private _eyecolor As String Private _haircolor As string Public Property EyeColor() As String Get Return _eyecolor End Get Set(ByVal Value As String) _eyecolor = Value End Set End Property Public Property HairColor() As String Get Return _haircolor End Get Set(ByVal value As String) _haircolor = value End Set End Property End Class
لاستعمال ما سبق
Dim first_human as New sam_classlib.Human first_human.EyeColor = "Brown" first_human.HairColor = "Black" Dim second_human As New sam_classlib.Human second_human.EyeColor = "Black" second_human.HairColor = "Blue" ' :)
لقد عملت 2 Human مستخدما the same property وهم لا يشبهان بعضهما
بالاضافة الى ما سبق هناك امكانية خاصية oveloading وهي امكانية عمل عدة وظائف Methods بداخل ال class تحتوي علي نفس الاسم ولكن يتم اختيار الوظيفة المناسبة اعتمادا على parameter
مثال على ذلك
Dim first_human as New sam_classlib.Human
first_human.EyeColor = "Brown"
first_human.HairColor = "Black"
Dim second_human As New sam_classlib.Human
second_human.EyeColor = "Black"
second_human.HairColor = "Blue" ' :)
first_human.SetHairColor(1) ' استعمال رقم
MsgBox(first_human.HairColor)
first_human.SetHairColor("Red") ' استعمال حروف
MsgBox(first_human.HairColor)
Public Class Human
Private _eyecolor As String
Private _haircolor As string
Public Property EyeColor() As String
Get
Return _eyecolor
End Get
Set(ByVal Value As String)
_eyecolor = Value
End Set
End Property
Public Property HairColor() As String
Get
Return _haircolor
End Get
Set(ByVal value As String)
_haircolor = value
End Set
End Property
Public overloads Sub SetHairColor(ByVal pHairColor As String)
Me.HairColor = pHairColor
End Sub
Public Overloads Sub SetHairColor(ByVal pHairColor As Integer)
If pHairColor = 1 then
Me.HairColor = "Red"
End If
End Sub
End Classللمزيد من المعلومات http://codebetter.co...ages/59908.aspx