تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Object MemberwiseClone Method
#4
الأخ الفاضل الشاكي لله

أعتقد انه لا يوجد شئ بدائي او عدم بدائي في كتابة الكود المهم في الأمر ان الكود يخدم احتياجاتك باي طريقة ممكنة و الأهم إن الكود يتم كتابته بشكل صحيح ففي الكود الخاص بك أنت قمت بتعريف متغير يعبر عن Structure ثم اعطيت قيمة لأحد عناصره ثم قمت بتعريف متغير أخر يرمز لنفس Structure ثم قمت بمساواة الاثنان معا

عموما و علي ما اعتقد ما تم استخدامه مع Class يمكن استخدامه مع Structure ففي النهاية الاثنان اساسهم واحد و الفارق بينهما يكمن فقط في نوعية البيانات او في DataTypes لكل منهما  لكن فكرة الحصول علي نسخة منهما ستظل واحدة مع الوضع ف الاعتبار نوعية البيانات طبقا لما شرحته مايكروسوفت في المثال الخاص بها خاصة اذا كانت البيانات من النوع Reference Type


كود :
Public Structure Wallet
   Implements ICloneable

   Public money As Integer
   
   Public Function Clone() As Object Implements ICloneable.Clone
       Return Me.CreateDeepCopy(CreateShallowCopy())
   End Function

   Friend Function CreateShallowCopy() As Wallet
       Return CType(Me.MemberwiseClone(), Wallet)
   End Function

   Friend Function CreateDeepCopy(current As Wallet) As Wallet
       Dim w As Wallet = CType(Nothing, Wallet)
       w.money = current.money
       Return w
   End Function

End Structure

أو يمكن كتابة الكود بشكل مباشر كالأتي:

كود :
Public Structure Wallet
   Implements ICloneable

   Public money As Integer
   
   Public Function Clone() As Object Implements ICloneable.Clone
       Return CType(Me.MemberwiseClone(), Wallet)
   End Function

End Structure


عموما انا الأمر لفت انتباهي ليس إلا لذلك اردت الكتابة عنه ربما يستفيد منه الأخرون

الأخ الفاضل أبو عمر

بما ان DynamicObject Class أساسه Object Class فنفس الاسلوب يسري عليه لكن نأثير هذا علي موارد النظام ف وحده الله اعلم
لكني لا أعتقد إن أخذ نسخة من كلاس ما سيكون له تأثير ما علي موارد نظام التشغيل


كمثال أري أن الفكرة هنا ممكن الاستفادة منها في برامج الداتا بيز مثلا للتعديل علي احد البيانات

و في حالتي انا شخصيا و تحديدا  ف  الكلاس الذي اقوم بكتابته فهي مفيدة لي لتحديد اي تغييرات تحدث بين أول صورة اخذتها لسطح المكتب عن طريق مقارنة اي صورة جديدة بها لمعرفة هل الصورة علي سطح المكتب تتغير بسبب تحريك فورم او فتح برنامج اخر
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
Object MemberwiseClone Method - بواسطة silverlight - 06-10-15, 06:50 PM
RE: Object MemberwiseClone Method - بواسطة الشاكي لله - 06-10-15, 06:58 PM
RE: Object MemberwiseClone Method - بواسطة أبو عمر - 06-10-15, 07:15 PM
RE: Object MemberwiseClone Method - بواسطة silverlight - 07-10-15, 02:21 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مقال تقني - سلسلة الكائنات Object Serialization بشكل مجمل RaggiTech 0 2,573 04-10-12, 11:38 AM
آخر رد: RaggiTech
  Object Initializers من جديد VB2008 RaggiTech 0 1,955 01-10-12, 06:29 PM
آخر رد: RaggiTech

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


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