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

تعريف التعليمة ref

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

السلام عليكم

  public void Demo1()
  {
 	 int x,y;
 	 x = 15; 
 	 y = 20;
 	 // This line calls the Demo2 method (see below)
 	 Demo2(x,ref y); 
 	 // What values will x and y have now?
 	 System.Windows.Forms.MessageBox.Show("X = " + x.ToString() +       "Y = " + y.ToString());
  }
  public void Demo2(int p1, ref int p2)
  {   
 	 p1 = p1 + p2; 
 	 p2 = p2 + p1;
  }

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

لاني عرفت كيف تعمل وفهمتها ولكن اجد صعوبة في تعريفها و الشرح عنها .

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

وكل عام وانتم بخير ..

#2

كلمة ref تعني أن هذا البارامتر هو refrence object و ليس value object

ما الفرق بين الإثنين؟

الـvalue object هو كائن ينشأ له أكثر من instance (لا أعرف الترجمة العربية الصحيحة و لكن لنقل "نسخة"). كل منها مختلف عن الآخر و له مكان منفصل في الذاكرة. في هذا المثال القيمة x هي value object. سيكون لها نسختان. و احدة تستحدث داخل Demo1 و الثانية في Demo2. كلاهما منفصل عن الآخر. لذا نسخة Demo1 لن تتأثر بما سيحصل داخل Demo2. لذا القيمة التي ستطبع هي 15 و ليس 35 الموجودة في Demo2

الـrefrence object بعكس أختها لها دائماً نسخة وحيدة و مكان واحد فقط في الذاكرة. لذا اذا قمت بتغيير قيمتها في أي مكان فإنك تؤثر على القيمة التي تراها بقية الأمكنة (و إن اختلف اسم المتغير). في المثال قيمة y في Demo1 هي نفسها p2 في Demo2 لذا عندما تتغير p2 ستتغير y (لأنهما مجرد مؤشران pointers لمكان واحد في الذاكرة) لذا هذا البرنامج سيطبع 55 و ليس 20.

جرب الكود بنفسك و سترى.

#3

شكرا اخي System Down (اسم غريب)

الصراحة فهمت الكلام بس بشكل نظري

ساحاول باذن الله تطبيق المثال

شكرا

#4
Dot-NEt كتب:
شكرا اخي System Down (اسم غريب)

اقرأ توقيعي تعرف السبب :lol:

مشاركتي كانت جافة نوعاً ما و لكن صدقني اذا جربت المثال فإنك ستفهمه في الحال.

#5

شكرا اخ System Down

انا المثال طبقته بس اذا حد اجا وقال لي اشرح ما الفائدة من التعليمة ref فلا اعرف ماذا ساشرح له والصراحة انا الان فهمت و وجدت التعريف لref بفضل شرحك

اكرر شكري لك

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

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