![]() |
|
out vs ref - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177) +--- الموضوع : out vs ref (/showthread.php?tid=2862) |
out vs ref - Sajad - 13-05-14 بسم الله الرحمن الرحيم وصلى الله على محمد واله الطاهرين السلام عليكم ورحمة الله وبركاته سنتكلم عن الكلمتين المحجوزتين ref و out ref كلمة محجوزة تستخدم مع تمرير المتغيرات الى الدوال وأن أي تغيير يطرأ على المتغير في داخل الدالة سيتأثرر به المتغير الرئيسي في الدالة الرئيسية. ملاحظة/ يجب ان يعطى المتغير ذات الاشارة المرجعية ref قيمة اولية قبل تمريرها الى الدالة. مثال على استخدام ref: PHP كود : private void Add(int num1,ref int num2)output: num2=9 لاحظ اخي العزيز في الدالة الرئيسية عرفنا متغير num2 واعطينا له قيمة اولية وبدون القيمة الاول لا نستطيع ان نستخدم ref واثناء تمرير المتغير num2 الى الدالة اشرنا اليه بالكلمة المحجوزة ref. وكذلك فعلنا في تعريف الدالة Add اشرنا بـref للباراميتر الثاني واثناء الجمع اسندت ناتج الجمع الى num2 (ليس شرطا ان تتشابه اسماء المتغيرات في دالة الجمع مع المتغيرات في الدالة الرئيسية) وبهذا تكون التأثير قد طرأ للمتغير الممر بالاشارة المرجعية ref في الدالة الرئيسية ويكون الناتج 9. أما بدون استخدام ref فان أي تغيير على الباراميترات في الدالة لا يتأثر بها المتغيرات في الدالة الرئيسية. نأتي الى الكلمة المحجوزة out: شبيهة بـref لكن الفرق الوحيد انه لا يحتاج الى ان يسند الى المتغير المؤشر بـout قيمة اولية ,ما عدا ذلك فهي تؤدي نفس وظيفة الـref لنأخذ المثال التالي: PHP كود : private void Sub(int val1, int val2, out int res)output: 2 لاحظ ان out هنا تعمل عمل return لكن بدون الحاجة الى دالة ترجع قيمة ,المسألة فقط عمل متغير اضافي مؤشر بـout تكون حاضن للناتج وبذلك تقوم بارجاع ا الناتج الى الدالة الرئيسية ,وبهذا نكون قد استغنينا عن الـreturn. اتمنى أن المعلومات افادتكم وبصراحة انا اميل الى استخدام out بدل الـreturn لاضفي لمسة الى برامجي ![]() ولا تنسوني و والدي من صالح دعواتكم والسلام عليكم ورجمة الله وبركاته RE: out vs ref - hoob computer - 18-05-14 وعليكم السلام و رحمة الله و بركاته, رحم الله والديك أخوية سجاد. معلومة مفيدة مجنت اعرفها ![]() السلام عليكم RE: out vs ref - Sajad - 18-05-14 السلام عليكم و والديك اخوية العزيز الله يخليك تحياتيف |