![]() |
|
Colon with passing paremeters - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177) +--- الموضوع : Colon with passing paremeters (/showthread.php?tid=2832) |
Colon with passing paremeters - الشاكي لله - 10-05-14 السلام عليكم ورحمة الله وبركاته في سي شارب 4 ، مع ظهور الكثير من الميزات امثال الكلمات المفتاحية dynamic و async, await ظهرت لنا ايضا ميزة جديدة وهي الColon with passing paremeters الColon يقصد بها النقطتين الرأسيتين (:) حيث يمكن استعمالها في اكثر من موضع ولكنني فقط سأعرض كيفية استخدامها مع البارمترات : PHP كود : void Test(string name, int age)فائدتها بسيطة وهي : اعطاء قيمة للبارميتار بالاسم . يعني لما اقول age: 22 كاني اتحدث مع المترجم واقول له : "يا ايها الCompiler العزيز ، اعطي البارميتار المدعو age قيمة رقمية وهي 22 " وذلك اعطى ميزة اعادة ترتيب البارمترات ، حيث لاتوجد مشكلة لو قمت بقلب البارمترات السابقة من : PHP كود : void Test(string name, int age)الى PHP كود : void Test(string name, int age)تذكر اني لم اقم باعادة ترتيب بارمترات الدالة ولم المسها اصلا * اذن عرفنا الColon تستخدم لأسناد قيمة للبارميتار ليس على حسب الترتيب بل على حسب اسم الباريمتار (فرأينا كيف اسندنا قيمة للبارميتار age قبل الاسناد الى البارميتار name مع ان الدالة تريد ان يتم اسناد name اولا ، ولكن اخترقنا هذا الحاجز لاننا قمنا بعمل مايسمى Passing Arguments by Name وليس Passing Arguments by Position -- الفائدة الاخرى لإستخدام الColon هي جعل الكود اكثر وضوحا ، سأضرب مثال بسيط .. وهو مثال لدالة وظيفتها قسمة الاعداد وكما نعرف ان عملية القسمة تحتاج شيئين : المقسوم (dividend) و المقسوم عليه(divisor) انظروا هذا الكود PHP كود : private void Form1_Load(object sender, EventArgs e)الان اريدك ان تخبرني من هو المقسوم ومن هو المقسوم عليه في الكود السابق ؟؟؟؟؟ الامر محير جدا ولايمكنك ان تعرف الا بوجود كود دالة Div حتى تعرف ترتيب البارميترات. هاااه عجزت ؟؟؟ اساعدك ؟؟؟ حسنا ياصديقي سأساعدك ساقوم باستخدام الColon : PHP كود : private void Form1_Load(object sender, EventArgs e)الان اصبح الامر واضحا وضوح الشمس ، وتذكر انت لحد الان ماشفت كود الدالة لكن بالتأكيد عرفت من هو المقسوم ومن هو المقسوم عليه . وهاهو كود دالة Div : PHP كود : int Div(int dividend, int divisor)تخيل معي لو انا ما استعملت الColon ولم اقم باعطائك كود دالة Div لكنت الان تضرب راسك بالحيطان حتى تعرف من هو الdivident ومن هو الdivisor هذه فائدة كبيرة للColon وهي جعل الكود اكثر وضوحا وفهما للمشاهد دون الحاجة الى رؤية كود الدالة و دون الحاجة الى نقل الكود الى الفيجوال ستوديو ورؤية التلميح الذي يظهر : < you don't need to see this if you using Colonانتهى RE: Colon with passing paremeters - Sajad - 10-05-14 السلام عليكم جزاك الله خيرا فعلا ميزة رائعة ويستفاد منها الكثير اضيف ايضا انها تسمى بـ Named Argument واضيف ايضا انه يمكن ان لا نسمي الباراميتر الاول ونسمي الثاني لكن العكس لا يسمح بها من قبل الـCompiler توضيح: PHP كود : var res = sub(5,num2: 3); // Passتحياتي RE: Colon with passing paremeters - ali.alfoly - 10-05-14 جزاك الله خيرا اخي محمد موضوع ممتاز شغالين علي الـ C# اليومين دول هههه الله يبارك لكم |