url=http://www.0zz0.com]ما الجديد في لغة C# 3.0؟ 769147144[/url]

انت غير مسجل لدينا
يشرفنا انظمامك الى اعظاء المنتدى
رجاء قم بالتسجيل اولا


انضم إلى المنتدى ، فالأمر سريع وسهل


url=http://www.0zz0.com]ما الجديد في لغة C# 3.0؟ 769147144[/url]

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

ما الجديد في لغة C# 3.0؟

اذهب الى الأسفل

ما الجديد في لغة C# 3.0؟ Empty ما الجديد في لغة C# 3.0؟

مُساهمة من طرف صانع برامج الإثنين أبريل 19, 2010 3:51 pm

السلام عليكم ورحمة الله وبركاته ...

اطلق قبل فترة الفجول ستديو
Visual Studio.net 2008 . و أطلق معها النسخة الجديدة من لغة C# 3.0.
توجد تطويرات كثيرة في هذه النسخة و سوف اتحدث عنها في عدة مواضيع إن شاء الله تعالى.
اليوم سوف أتكلم عن التعريف الضمني للمتغيرات أو الـ Implicitly Typed Local Variables.
في السابق كنا لابد ان نحدد نوع المتغير عندما نريد استخدامه في لغة سي# ، مثل الطريقة التالية:

int i = 5;
string s = "Hello";
double d = 1.0;

فالكود أعلاه قمنا بتعريف متغير من نوع int و آخر من نوع string و آخر من نوع double و لكن الكود التالي يعتبر ايضاً صحيح في لغة سي# 3.0.
var i = 5;
var s = "Hello";
var d = 1.0;

فالمتغير الأول i سيكون من نوع int لأننا اسندنا له القيمة 5 و الثاني s سيكون عبارة عن string لأننا اسندنا له قيمة string و هكذا لأننا قمنا بتعريفها من نوع var.
و عندما يعرف متغير من نوع var و تسند له قيمة int لا نستطيع اسناد string له مثلاً فيما بعد، مثل هذا المثال:

var i = 5;
i = "Hello"; // Error, can't assign string to int


فلغة سي# 3.0 أصبحت ذكية بالإمكان للتعرف على نوع المتغير عن طريق الجهة اليمنى للجملة Right Hand Side .
و لاستخدام هذه الطريقة في لغة سي# 3.0 لابد من توفر الشروط التاليه:


  • عند استخدام متغير من نوع var لابد من اسناد قيمة ابتدائية له.
  • القيمة الابتدائية لابد ان تكون تعبير رياضي.
  • لا يمكن ان تكون القيمة الابتدائية null.
  • لا يمكن تعريف اكثر من متغير في نفس الجملة.
  • لا يمكن للمتغير ان ينسد إلى نفسه.
لذلك الأمثلة التالية ليست صحيحة:
var x; // Error, no initializer to infer type from
var y = {1, 2, 3}; // Error, collection initializer not permitted
var z = null; // Error, null type not permitted
var u = x => x + 1; // Error, lambda expressions do not have a type
var v = v++; // Error, initializer cannot refer to variable itself


و لمزيد من التفاصيل يمكنك زيارة الموقع الرسمي للـMSDN.
صانع برامج
صانع برامج
المدير العام
المدير العام

عدد المساهمات : 415
0
تاريخ التسجيل : 05/04/2010
العمر : 40
الموقع : برامج x

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى