تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
WriteOnly Property
#1
معلومة سريعة

نادرا ما تجد مبرمجا يستخدم 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() {100200300}
 
       ' اإجراء العملية الحسابية داخل الكلاس
        Dim stack As Integer = collector.ClaculateStack
        ' 
التخلص من القيمة التي تم تخصيصها
        
' سابقا الي المتغير و اعادة قيمة المتغير الي الصفر مثلا
        collector.CountValue = New Integer() {0}

        ' 
عرض الناتج في الفورم مثلا
        Me
.Label1.Text stack

        
' الأن لو حاولت أن تحسب القيمة ثانية
        Me.Label2.Text = collector.ClaculateStack 


الملفات المرفقة
.rar   Test_WriteOnlyProperty.rar (الحجم : 57.85 ك ب / التحميلات : 32)
الرد
تم الشكر بواسطة: sendbad100 , sendbad100 , Sajad , ابو ليلى


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مقال- تطوير الكونترول Property Attributes الجزء الثالث RaggiTech 0 1,638 06-10-12, 12:20 AM
آخر رد: RaggiTech
  مقال- أفكار في الدوت نت Overrides DisplayRectangle Property RaggiTech 1 1,979 05-10-12, 06:50 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم