تقييم الموضوع :
  • 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
نصيحة لك ، لا تقم بذلك إلا عندما تحتاج إليه ، ولكن هل سأحتاج إليه فعلاً ؟؟؟
في الواقع نعم ، ولكن هذه موضوع آخر ...

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة إنشاء برنامج طباعة ملصقات الباركود ملهمـ 1 4,398 22-12-21, 05:09 PM
آخر رد: alessam4pro
  طريقة عمل نسخة لتثبيت فيجوال ستوديو بدون نت معاند الحظ 12 8,087 11-12-21, 04:26 PM
آخر رد: اسلام الكبابى
  طريقة تشغيل كريستال ريبورت بجميع ادارات فيجول نت abdhassan 3 7,068 26-02-21, 08:57 PM
آخر رد: علي النقيب
  طريقة إضافة اختصار للصنف في شاشة المبيعات ملهمـ 5 5,905 14-07-20, 12:24 PM
آخر رد: ابراهيم ايبو
  Private Text Encryption -خدمة للمبرمجين في جديد عالم التشفير- RaggiTech 1 3,545 07-05-20, 05:48 AM
آخر رد: سعود
Heart [مقال] شرح طريقة معرفة محتوى الكوكيز sooriaty03 5 6,201 11-02-20, 03:18 PM
آخر رد: DK-x
  [VB.NET] سؤال عن طريقة نسخ كل الروابط و اسم الرابط من موقع انترنت toedi 3 3,052 16-01-20, 07:34 AM
آخر رد: toedi
Lightbulb [VB.NET] تايمر جديد اسرع بأضعاف من التايمر العادي ؟! 3booody 9 5,305 27-11-19, 11:33 PM
آخر رد: 3booody
  طريقة تقسيم كودك البرمجة الي سطرين أو أكثر كم تريد dametucorazon 1 3,928 06-09-19, 12:55 AM
آخر رد: سعود
  شرح طريقة حساب الكمية والبيع بأكثر من وحدة ملهمـ 7 5,686 30-08-19, 03:38 AM
آخر رد: atefkhalf2004

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


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