تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
أفضل طريقة لإنشاء كائن جديد - شارك في النقاش
#1
كاتب الموضوع : النبهاني


السلام عليكم ورحمه الله وبركاته ،

في الحقيقة قد يتبادر الى الذهن عند رؤية اكواد من هنا وهناك حول طريقة تعريف الكائنات ، لاحظ الكود التالي :

كود :
[SIZE=2]1- [/SIZE][SIZE=2][color=#0000ff]Dim[/color][/SIZE][SIZE=2] x [/SIZE][SIZE=2][color=#0000ff]As[/color][/SIZE][SIZE=2] Y = [/SIZE][SIZE=2][color=#0000ff]New[/color][/SIZE][SIZE=2] Y[/SIZE]
[SIZE=2]2- [/SIZE][SIZE=2][color=#0000ff]Dim[/color][/SIZE][SIZE=2] x = [/SIZE][SIZE=2][color=#0000ff]New[/color][/SIZE][SIZE=2] Y[/SIZE]
[SIZE=2]3- [/SIZE][SIZE=2][color=#0000ff]Dim[/color][/SIZE][SIZE=2] x [/SIZE][SIZE=2][color=#0000ff]As [/color][/SIZE][SIZE=2][color=#0000ff]New[/color][/SIZE][SIZE=2] Y[/SIZE]
( ملاحظة ، وضعت الارقام في الكود لتسهيل الاشاره )

بالنسبه لأي مبرمج VB.NET الطريقة الأكثر روعه في الصيغه هي الثالثه ، إلا أنك لو جئت لتقرأ كودا مكتوبا في احد ربوع الشبكة ، او قرأت احد الكتب لوجدت انهم في الأمثله يستخدمون الطريقة الأولى !! طيب ما الفرق بينهما ؟ و لماذا يكثر استخدام الطريقة الأولى ؟ هذا محور النقاش في هذا الموضوع
ولو نلاحظ ان مبرمجي #C يستخدمون الطريقة الاولى ! لماذا ؟ لا اعلم فأنا لست خبير #C

فليدلو كل عضو بدلوه في هذا الجانب - شرط ان يكون الكلام على منطق علمي لا عاطفي او مزاجي فنحن عرب - ولنرى اي الطرق هي الأصح ، والأفضل ان نبحث في مراجع خارجيه لتكون افضل
}}}}
تم الشكر بواسطة:
#2
كاتب المشاركة : أحمد جمال


لنعد لنقطة ما قبل الصفر في وضع الكلمة New والتي لا تستخدم لتعريف نوع نسخة ، بل تستخدم لاطلاق ال Constructor .

طبعاً الطريقة :

كود :
Dim x As New Y
تعني انني قمت بعمل نسخة X من النوعية Y وقمت بربطه مباشرة وهو ما يعرف باسم Early Binding أو الربط المبكر ، وهو سريع جداً في التفيذ .

أما الجملة الثانية وهي :

كود :
Dim x As Y = New Y
فهي تنفذ ما يدعى بالربط المتأخر Late Binding ونفس الجملة يمكن كتابتها بشكل آخر هو :

كود :
Dim x as Y
x = new Y
وطبعاً لن أذكرك بإنها بطيئة مقارنة بالطريقة الأولى .

الطريقة :

كود :
Dim x = New Y
هي نفسها كأنك قمت بكتابة الكود التالي :

كود :
Dim x
x= new Y
وفي هذه الحالة - لن يعطيك خطأ لو كنت تستخدم Option Explicit Off ولكن لن تجد مبرمجاً على سطح الأرض ينصحك بعمل هذا - وفي هذه الحالة سيتم تعريف x من نوع Object ومن ثم يتم تحويلها للنوع المطلوب لاحقاً ، ولن أذكرك بالبطء الناتج عن هذه العملية .

وإذا لم تكن تستخدم الخيار Option Explicit Off فإن الكود السابق يمكن كتابته بالشكل التالي :

كود :
Dim x As Object
x= new Y
نصيحة لك ، لا تقم بذلك إلا عندما تحتاج إليه ، ولكن هل سأحتاج إليه فعلاً ؟؟؟
في الواقع نعم ، ولكن هذه موضوع آخر ...

والله الموفق ..
والسلام عليكم ورحمة الله وبركاته .
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة تشغيل كريستال ريبورت بجميع ادارات فيجول نت abdhassan 2 328 28-05-16, 02:16 PM
آخر رد: CLARO
  طريقة مميزة لعمل إعدادات Setting لحفظ اعدادات برنامجك بدون أكواد kslawy 6 1,669 26-05-16, 12:07 PM
آخر رد: CLARO
Brick [مثال] طريقة سهلة مضمونة لفتح اي مشروع من اصدار مختلف الطالب 2 866 14-05-15, 07:55 PM
آخر رد: الطالب
Heart [مقال] شرح طريقة معرفة محتوى الكوكيز sooriaty03 3 1,469 27-12-13, 04:10 PM
آخر رد: رحوووم
  طريقة تغيير الوان الفورم من ListView 3booody 4 1,338 19-08-13, 05:01 PM
آخر رد: 3booody
  طريقة عمل برنامج زخرفة النصوص 3booody 3 1,548 19-06-13, 11:36 PM
آخر رد: Hassan Khamees
  طريقة من أجمل الطرق لجعل الفورم على شكل صورة عندك أسامة أحمد 63 7,423 12-05-13, 10:39 PM
آخر رد: APP
  كونترول جديد من مايكروسوفت MsChart Control RaggiTech 1 549 05-10-12, 03:04 PM
آخر رد: RaggiTech
  نوع بيانات جديد (تاريخ) RaggiTech 0 437 05-10-12, 03:34 AM
آخر رد: RaggiTech
  يمكننا استخدام فيجول بايزيك 2008 لإنشاء صفحات أشرطة إضافية لـ Excel 2007 RaggiTech 0 356 05-10-12, 01:14 AM
آخر رد: RaggiTech

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


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