08-07-17, 08:12 AM
معلومة سريعة
نادرا ما تجد مبرمجا يستخدم WriteOnlly Property بالرغم أنها احدي الطرق الهامة لتمرير قيمة الي متغير وهذا يتم من كلاس الي كلاس أخر
وغالبا WriteOnly Property قد يتم استخدامها لتمرير بيانات خاصة او بيانات حساسة تم تشفيرها
بحيث يتم تخصيص القيمة لها و هي بدورها تمرر القيمة الي متغير من النوع Private قد يكون موجود في كلاس أخر
الفكرة و ببساطة يمكن تلخيصها في الأتي
هو كيف تمرر بيانات بدون أن يشعر احد بذلك و ايضا إعادة تغييرها في اي وقت بدون أن يشعر أحد
طبعا الأفضل أن يتم تشفير البيانات قبل تمريرها
بدون الدخول في كلام نظري أكثر من ذلك
لندع الأمثلة التالية توضح الفكرة
المثال الأول:
لنفترض أننا لدينا كلاسا به متغير من اي نوع و هذا المتغير سيتم استخدامه في الكلاس من خلال دوال او روتينات تعتمد عليه
الاستخدام
المثال الثاني
الاستخدام
نادرا ما تجد مبرمجا يستخدم WriteOnlly Property بالرغم أنها احدي الطرق الهامة لتمرير قيمة الي متغير وهذا يتم من كلاس الي كلاس أخر
وغالبا WriteOnly Property قد يتم استخدامها لتمرير بيانات خاصة او بيانات حساسة تم تشفيرها
بحيث يتم تخصيص القيمة لها و هي بدورها تمرر القيمة الي متغير من النوع Private قد يكون موجود في كلاس أخر
الفكرة و ببساطة يمكن تلخيصها في الأتي
هو كيف تمرر بيانات بدون أن يشعر احد بذلك و ايضا إعادة تغييرها في اي وقت بدون أن يشعر أحد
طبعا الأفضل أن يتم تشفير البيانات قبل تمريرها
بدون الدخول في كلام نظري أكثر من ذلك
لندع الأمثلة التالية توضح الفكرة
المثال الأول:
لنفترض أننا لدينا كلاسا به متغير من اي نوع و هذا المتغير سيتم استخدامه في الكلاس من خلال دوال او روتينات تعتمد عليه
PHP كود :
Public Class DataEncoder
Private count As Integer
Public Sub New()
End Sub
Public WriteOnly Property CountValue As Integer
Set(value As Integer)
Me.count = value
End Set
End Property
Public Function ClaculateStack() As Integer
count = count * 1000
Return count
End Function
End Class
الاستخدام
PHP كود :
' تعريف الكلاس
Dim encoder As New DataEncoder
' تمرير القيمة الي المتغير في الكلاس
encoder.CountValue = 20
' اإجراء العملية الحسابية داخل الكلاس
Dim stack As Integer = encoder.ClaculateStack
' التخلص من القيمة التي تم تخصيصها
' سابقا الي المتغير و اعادة قيمة المتغير الي الصفر مثلا
encoder.CountValue = 0
' عرض الناتج في الفورم مثلا
Me.Label1.Text = stack
' الأن لو حاولت أن تحسب القيمة ثانية
Me.Label2.Text = encoder.ClaculateStack
المثال الثاني
PHP كود :
Public Class DataCollector
Private count As Integer
Public Sub New()
End Sub
Public WriteOnly Property CountValue As Integer()
Set(value As Integer())
Me.count = value(0)
End Set
End Property
Public Function ClaculateStack() As Integer
count = count * 1000
Return count
End Function
End Class
الاستخدام
PHP كود :
' تعريف الكلاس
Dim collector As New DataCollector
' تمرير القيمة الي المتغير في الكلاس
collector.CountValue = New Integer() {100, 200, 300}
' اإجراء العملية الحسابية داخل الكلاس
Dim stack As Integer = collector.ClaculateStack
' التخلص من القيمة التي تم تخصيصها
' سابقا الي المتغير و اعادة قيمة المتغير الي الصفر مثلا
collector.CountValue = New Integer() {0}
' عرض الناتج في الفورم مثلا
Me.Label1.Text = stack
' الأن لو حاولت أن تحسب القيمة ثانية
Me.Label2.Text = collector.ClaculateStack