RSS

المميزات الجديدة في لغة Optional Parameters and Named Arguments – C# 4.0

10 May

أولا : الحقول الإختيارية (Optional Parameters)

تعتبر ميزة البراميترات الاختيارية او ( Optional Parameters) غير جديدة على مبرمجي الفيجوال بيسك حيث تعطيك هذه الميزة حرية الاختيار بين أرسال قيمة الى البراميترات او عدم إرسال قيمة وبذلك يتم أخذ القيمة الافتراضية التي تم تحديدها مسبقا عند إنشاء الدالة (Method) لن أطيل عليكم سوف أبدء مباشرة باعطاء أمثلة عنها
كيف يمكن إنشاء براميترات إختيارية (Optional Parameter)
يتم إنشاء الحقول او البراميترات الإختيارية كما هو موضح في الشكل التالي

كما ترى وبكل بساطة فان الحقل الإختياري يجب أن يأتي بعده مباشرة قيمة إفتراضية وبذلك تخبر المترجم (Compiler) بأن هذا الحقل حقل إختياري كما هو موضح في الصورة التالية

كما ترى فإن البراميترات أو الحقول الإختيارية يتم وضعها بين علامتي [] وذلك لدلالة على أنها حقول إختيارية .

المثال كامل

class Program
{
static void Main(string[] args)
{
Add(10);
Add(10, 5);
Add(10,5,5);
}
static void Add(int A, int B = 0,int C=1)
{
Console.WriteLine("The Value Of A={0},B={1},C{2}", A, B,C);
}

ثانيا : الحقول ذات الاسماء المعلنة (Named Arguments)

في الحقيقة أرهقني مصطلح (Named Arguments)    من ناحية التعريب ولذلك أطلقت عليه إسم الحقول ذات الأسماء المعلنة. والغرض منها يكمن في إمكانية إعلان إسم الحقل الإختياري وتحديد قيمته بغض النظر عن موقعه في الدالة.
في الشفرة السابقة يوجد هنالك حقلان إختياريان الأول إسمه (B)  والثاني إسمه (C)  والان لنفترض اني اريد ان أرسل قيمة (C) فقط بدون إرسال قيمة (B) هل هذا ممكن ؟
طبعا هذا ممكن مع (Named Arguments) إنظر الى الشكل التالي

كما ترى فإن العملية بسيطة جدا كل ماعليك فعله هو تحديد إسم الحقل الذي قمت بتعريفه في الدالة ثم إرسالة القمية التي تريدها
أمثلة أخرى

وكما هو موضح في الاعلي فإن موقع الحقل لايهم في حالة ( Named Arguments)
الان تخيل معي ان لديك دالة (Method) يوجد بها أكثر من حقل إختياري ولنقل على سبيل المثال عشرة حقول إختيارية وأنك في بعض الأجزاء من الكود تريد أن ترسل قيمة الحقل  الاخير فقط او انك تريد إرسال قيمة حقلين فقط من العشرة وهكذا ؟؟؟
طبعا بدون وجود ميزة (Named Arguments) فسوف تظطر الى كتابة جميع الحقول ولكن من حسن حظنا فان هذه الميزة موجودة في لغة السي شارب (C#).

قواعد يجب أن تتبع

•    يجب أن تكتب الحقول الإختيارية بعد الحقول الأجبارية (Required Parameters) والعكس غير مقبول والا فإن المترجم سوف يظهر رسالة خطأ تخبرك بان الحقول الإختيارية يجب ان تظهر بعد الحقول الإجبارية.
•    لاتقم أبدا أبدا بتغير أسماء الحقول الإختيارية بعد إستدعائك لهذه الدالة عند إستخدام (Named Arguments ) والسبب في ذلك أن المترجم سوف يظهر رسالة خطأ مفادها بأن إسم الحقل غير موجود وتخيل معي المعاناة لو أنك قمت بإستدعاء هذه الدالة في أمكان كثيرة  من برنامجك لأنك سوف تطظر الىتغيره في كل مكان إستدعاء.


•    لايمكن إستخدام (Named Arguments) الى إذا كان هنالك ( Optional Parameters)

نقطة اخيرة

قد يسئل البعض ويقول لقد ذكرت في هذا الموضوع كلمة ( Parameters) بعد ذلك قمت بذكر كلمة (Arguments) إذا مالفرق بينهما
جواب هذا السؤال في الصورة التي بالأسفل


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

 
1 Comment

Posted by on May 10, 2010 in C#

 

Tags: , , ,

One response to “المميزات الجديدة في لغة Optional Parameters and Named Arguments – C# 4.0

  1. محمد الدهشوري

    May 11, 2010 at 11:36 am

    مشاء الله كلام جميل و جيد
    و دائنا الى الامام و التقدم

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: