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

كيف تؤثر ال delgate على امان العمليات methods

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

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

انا كان لي مجموعة اسئلة في الdelegate

ولا اعرف ان كنت قد انتهكت قواعد المشاركة ام لا

لكن مشكلتي انني لست حديثة العهد بال الdelegate

وكل ما اقرا عنها يقولون انها safe type فتبادرت الى ذهني مجموعة اسئلة اتمنى ان يجاوبني احد عنها

اولا - لماذا الdelegate نعتبر ها safe type

هل لأنها فقط تعتبر ref type وليست value type

ثانيا - ماذا يحدث عندما انادي ال method عن طريق الdelegate او اناديها مباشرة

هل هناك فرق امني كبير

ارجو ان يشرح لي احدكم كيف ثؤثر الdelegate في امان التطبيق الذي استعمله ولا يعطيني مرجع لكيفية كتابة ال delegate

فانا اعرف ذلك جيدا والحمد لله

واتمنى أيضا أن يعطيني احدكم مثال لواقع او مشكلة عملية قامت بحلها ال delegate

ما عدا في ال event بالطبع

والسلام علكيم

تم تعديل هذه المشاركة بواسطة Emak_80 في 11 يونيو 2006 في 09:57

#2

السلام عليكم

في اللغات unmanaged مثل ال c كان لما يحبوا يوصلوا لداله معينه (Callback Function) كانوا يشيروا الي مكانها في الmemory

باستخدام addressof keyword يعني مؤشر للداله (Function Pointer) وكان مجرد مؤشر لــ memory location

طيب كان بيعملوا كده ليه

عشان ميعرفوش الداله الا في الــ run-time وكان الموضوع ده مش أمان ليه لان المبرمج بيتحكم في الــ memory location ده

الحل في الـ .NET

الــ delegate

المبرمج لا يعرف اي شىء عن الmemory

يعني لما نحب نمرر داله لداله تانيه بدل من الdata

او داله محتاجه عمليه في داله تانيه ولا نعرف هذه الداله في الــ compile-time ونعرفها فقط

في الrun-time ومن ثم تمريرها للداله الأولي

أمثله

1

في الـــThreading

لما نعملthread محتاجين نمرر له الاوامراللي هينفذها و ترتيب تنفيذها

يبقي محتاجين نمرر له داله طبعا اللي بيوصل thred لمكان الداله هوه ال delegate

2

عند عمل generic class library

يعني هعمل class و فيه subtask المفروض اللي يعملها اللي هيستخدم الclass

يعني هيمرر لل class الداله المطلوبه

مثال

لو عندي class بيعمل ترتيب لعناصر مصفوفه تحتوي علي عناصر من اي نوع

محتاج تمرر له داله اللي منها يعرف هيرتبهم علي أي اساس أو اي خصائص

اذا

الدوال محتاجه تفاصيل الدوال اللي هتخدها كــــــ parameters

يبقي أكيد ال delegate يحتوي علي تفاصيل داله معينه

اقتباس
One good way of understanding delegates is by thinking of a delegate as something

that gives a name to a method signature.

اقتباس
Delegates quite simply are a special type of object—special in the sense that, whereas all the objects we have defined up to now contain data, a delegate just contains the details of a method.
1
#3

جزاك الله كل خير

#4

أخي أحمد، جزاك الله خيراً على هذا الشرح المبسط.. لكن لي ملحوظة بسيطة، استخدام اللغة العامية في شرح كهذا قد يفقد القيمة العلمية له، و أيضاً هناك الكثيرون من أخواننا في الوطن العربي لا يفهمون اللهجة المصرية، و لست أعني بالطبع كتابة الرد أو الموضوع بدون أي أخطاء نحوية أو خلافة، فالعبد لله هو أول من يخطئ في هذه المبادئ اللغوية، لكن على الأقل يكون الرد باللغة العربية التي يفهما كل العرب و ليس فئة معينة فقط..

و شكراً مقدماً على سعت صدرك ..

رأس الحكمة الإيمان بالله

#5

السلام عليكم

وشكرا لكم

وعلي العموم انا هسمع كلامك اخي محمد عبد العليم

لأن انا يهمني انا يفهمني اخوتي العرب الذين هم احبابي

و ان كنت ضعيف جدا في اللغه العربيه ولكن هحاول

1

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

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