تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Colon with passing paremeters
#1
السلام عليكم ورحمة الله وبركاته


في سي شارب 4 ، مع ظهور الكثير من الميزات امثال الكلمات المفتاحية dynamic و async, await ظهرت لنا ايضا ميزة جديدة وهي الColon with passing paremeters

الColon يقصد بها النقطتين الرأسيتين (:)

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


PHP كود :
void Test(string nameint age)
        {
        }

        private 
void Form1_Load(object senderEventArgs e)
        {
            
Test(name"Mohammed"age220);
        } 


فائدتها بسيطة وهي : اعطاء قيمة للبارميتار بالاسم .



يعني لما اقول age: 22

كاني اتحدث مع المترجم واقول له : "يا ايها الCompiler العزيز ، اعطي البارميتار المدعو age قيمة رقمية وهي 22 "


وذلك اعطى ميزة اعادة ترتيب البارمترات ، حيث لاتوجد مشكلة لو قمت بقلب البارمترات السابقة من :

PHP كود :
void Test(string nameint age)
        {
        }

        private 
void Form1_Load(object senderEventArgs e)
        {
            
Test(name"Mohammed"age22);
        } 

الى

PHP كود :
void Test(string nameint age)
        {
        }

        private 
void Form1_Load(object senderEventArgs e)
        {
            
Test(age22name"Mphammed");
        } 


تذكر اني لم اقم باعادة ترتيب بارمترات الدالة ولم المسها اصلا


* اذن عرفنا الColon تستخدم لأسناد قيمة للبارميتار ليس على حسب الترتيب بل على حسب اسم الباريمتار (فرأينا كيف اسندنا قيمة للبارميتار age قبل الاسناد الى البارميتار name مع ان الدالة تريد ان يتم اسناد name اولا ، ولكن اخترقنا هذا الحاجز لاننا قمنا بعمل مايسمى

Passing Arguments by Name

وليس

Passing Arguments by Position



--



الفائدة الاخرى لإستخدام الColon هي جعل الكود اكثر وضوحا ، سأضرب مثال بسيط .. وهو مثال لدالة وظيفتها قسمة الاعداد

وكما نعرف ان عملية القسمة تحتاج شيئين : المقسوم (dividend) و المقسوم عليه(divisor)


انظروا هذا الكود

PHP كود :
private void Form1_Load(object senderEventArgs e)
        {
            
Div(510);
        } 


الان اريدك ان تخبرني من هو المقسوم ومن هو المقسوم عليه في الكود السابق ؟؟؟؟؟

الامر محير جدا ولايمكنك ان تعرف الا بوجود كود دالة Div حتى تعرف ترتيب البارميترات.


هاااه عجزت ؟؟؟


اساعدك ؟؟؟


حسنا ياصديقي سأساعدك


ساقوم باستخدام الColon :

PHP كود :
private void Form1_Load(object senderEventArgs e)
        {
            
Div(dividend5divisor10);
        } 




الان اصبح الامر واضحا وضوح الشمس ، وتذكر انت لحد الان ماشفت كود الدالة لكن بالتأكيد عرفت من هو المقسوم ومن هو المقسوم عليه .






وهاهو كود دالة Div :

PHP كود :
int Div(int dividendint divisor)
        {
            return 
dividend divisor;
        } 


تخيل معي لو انا ما استعملت الColon ولم اقم باعطائك كود دالة Div لكنت الان تضرب راسك بالحيطان حتى تعرف من هو الdivident ومن هو الdivisor


هذه فائدة كبيرة للColon وهي جعل الكود اكثر وضوحا وفهما للمشاهد دون الحاجة الى رؤية كود الدالة و دون الحاجة الى نقل الكود الى الفيجوال ستوديو ورؤية التلميح الذي يظهر :
< you don't need to see this if you using Colon



انتهى
الرد }}}
تم الشكر بواسطة: Sajad , ali.alfoly , sendbad100


الردود في هذا الموضوع
Colon with passing paremeters - بواسطة الشاكي لله - 10-05-14, 10:13 PM
RE: Colon with passing paremeters - بواسطة Sajad - 10-05-14, 10:50 PM
RE: Colon with passing paremeters - بواسطة ali.alfoly - 10-05-14, 10:52 PM

التنقل السريع :


يقوم بقرائة الموضوع: