الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Memory allocation for new object

مغلق
بدأه dev_a_salah في 8 يونيو 2006 · 6 رد · 560 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

دلوقتى لو احنا عندنا كلاس مثلا اسمة موظف و فيه اتنين properties اللى هما الٍاسم الأول و الخير و فيه اتنين ميثود

دلوقتى لو عملنا five instances من الكلاس ده واحد اسم الموظف فيه احمد ابراهيم و التانى اسمة على سمير و التالت اسمة ايمن فكرى و هكذا المهم هل دلوقتى الفريمورك لما تيجى تعمل instances دى هل هتعمل 5 نسخ كل واحدة فيها الproperties بقيمها الجديدة و الميثودز هتكون موجودة نسخة و احدة بس و للا الخمس instances هيكون كل واحدة فيها ال properties و الميثودز كمان يعنى اميثودز هتكون موجودة 5 مرات

أحمد صلاح

#2

كل نسخة لها اعضاءها لوحدها ما عدى اللاعضاء المشتركة Static(Shared)

اعضاء=Member

نسخة =Instance

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

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

ياريت لو حد تانى عندة رأى تانى او اى دليل على صحة اى راى يفيدنا اصل الموضوع ده مهم اوى

أحمد صلاح

#4

أخي الكريم

instances هو عمل نسخة في الذاكرة يعني كل نسخة تكون منفصلة عن الأخرى ولكن اذا استعملت الخاصية static فسيكون instances عام ومكشوف لجميع الوحدات الأخرى

يا أيها الناس قولو لا إله إلا الله تفلحوا وتملكوا بها العرب وتذل لكم العجم وإذا آمنتم كنتم ملوكا في الجنة

#5
اقتباس
أخي الكريم

instances هو عمل نسخة في الذاكرة يعني كل نسخة تكون منفصلة عن الأخرى ولكن اذا استعملت الخاصية static فسيكون instances عام ومكشوف لجميع الوحدات الأخرى

هذا صحيح 100% و لكن الا يحتاج الي توضيح

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

ياريت لو حد تانى عندة رأى تانى او اى دليل على صحة اى راى يفيدنا اصل الموضوع ده مهم اوى

هذا الكلام مهم و يحتاج الي توضيح فعلا اذ انه ليس من المنطقي تكرار نفس شفرة الدالة (اي سيكون لكل الا instances لديهم نفس الشفرة و هذا تكرار غير مسوغ )

اي سيكون لكل instance ياناته الخاصة وذلك لامكانية تغييرها اما الكود فيجب ان يكون مشترك و السبب واضح

بالنسبه لرايي فاعتقد و الله اعلم انه في حالة instance methods فان الشفرة لا تتكرر ابدا و لكن تشترط ان يتم تمررير المتغير this وذلك للوصول لبيانات instance بينما في static methods فلا يوجد طرية مباشرة (كما في اختها) لتمرير المتغير this

ارجو من يعرف الاجابة ان يؤكد هذا الافتراض او ينفية

تحياتي

:)

#7

سلام عليكم جميعا

انا فعلا بعد بحث و سالتاحد اعضاء المنتدى و هوا اسمة اسامة

افادنى انه فعلا كل ميثود لما بتتحول بيزيد عليها بارامتر يمرر لها لما بيتنادى عليها عشان يحمل عنوان الأوبجكت اللى هوا this

و ايضا سألت ناس خبيرة كتير و افادتنى بكدا

و وواحد قالى انه ممكن فى السى بلس بلس نعمل اراى من اوبجكتس و نشوف الفرق فى قيمة البوينتر بين عنوان كل اوبجكت فهنلاقية مسواى للمساحة اللى بيشغلها الفاريبلز بس

و انا كنت كتبت كود جربتة

عملت كلاس يحتوى ميثود و ديليجت للميثود دى و ميثود بترجعلنا الأوبجكت

methodinfo

بتاع الديليجت ده

و بعدين عملت اكتر من instance

لمن الكلاس ده و عن طريق الميثود انفو و جبت الهاندلر بتاع نفس الميثود فى الاوبكتس المختلفة بلاقيه هوا واحد و متساوى

لكن بيتغير كل لما البرنامج يشتغل و ده معناه ان كل الأوبجكتس بتستعمل نفس الميثود اللى ليها نفس العنوان و الهاندلر

و ان المكان ده بيتغير كل مرة نشغل فيها الرنامج من جديد لكنه ثابت مهما عملنا اوبكتس كتير هنلاقيها بتشير لنفس العنوان

لكن ده لا يمنع ان احنااثناء التفكير بنفكر على ان كل اوبجكت ليه الميثودز الخاصة بيه لكن اثناء الترجمة الموضوع مبيبقاش كدا

و كمان نخيل لو عندنا فى برنامج 10 داتاجريد مثلا معنى كدا ان الميثودز الكتيرة اوى بتاعتها دى هتتكرر ىا لذاكرة 10 مرات تخيل بقى الإهدار فى الذاكرة لكن لو مجرد المتغيراتاللى هياعبارة عن شوية سترينج و انتجر و بيانات اساسية مساحتها قليلة هيا بس اللى بتتكرر يبقى ده استخدام امثل للذاكرة و تخيل لو عندنا داتا تيبل فيه 100 او 1000 صف هل يعقل ان الميثودز هيا هياها تتكرر 100 او الف مرة اكيد ده يبقى استخدام سىء جدا جدا للذاكرة

أحمد صلاح

هذا الموضوع مغلق.

مواضيع مشابهة