تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الخامس : الأنواع والدوال الرئيسية .
#1
منقول من المنتدى القديم
كاتب الموضوع احمد جمال
بتاريخ 25-02-08
خصائص Console :

حتى هذه المرحلة من الدروس ، نستطيع الآن الكتابة على الشاشة وعمل دوال واستدعاءها واسترجاع قيم وطباعتها ، عند هذه المرحلة سنأخذ راحة قصيرة للتعرف على العناصر الاساسية للبيئة Console التي نعمل عليها حالياً .

اهم الدوال التي تحتويها الفئة Console هي دوال الادخال والاخراج ، وهي :
كود :
Console.Write(string);
// لكتابة نص .
Console.WriteLine(string)
// لكتابة نص مع ضغط الانتقال لسطر جديد بعد الإنتهاء .
string x=Console.ReadLine();
// لقراءة مدخلات من المستخدم ويتم الانتهاء من القراءة مع ضغط انتر
int x=Console.ReadKey();
// قراءة حرف واحد فقط ويتم انهاء عملية القراءة مع ضغط إنتر
ConsoleKeyInfo r= Console.ReadKey();
// قراءة حرف واحد فقط والانتهاء من القراءة بعد إدخاله ، يمكن ادخال اي شيء مثل زر الأسهم مثلاً لذا يتم تخزين الناتج في متغير خاص

لو كنت مبرمج VB.net ، فقط ازل ال ; من آخر الجملة .

دوال أخرى خاصة بعمليات الألوان مثل ForeGroundColor للون النص و BackgroundColor للون الخلفية ، تستطيع تعيين اللون عن طريق الفئة ConsoleColor بالشكل التالي :
كود :
Console.ForegroundColor = ConsoleColor.Yellow;

هناك خصائص أخرى مثل WindowWidth و Title وخلافها لتحديد مظهر النافذة .

نعود لأحد مواضيع الطباعة ، لنفترض اننا نريد القيام بطباعة النص التالي :

الإسم : (المتغير name ) - العمر (المتغير Age )

يمكننا القيام بذلك عن طريق كتابة الكود التالي :

كود :
Console.Write("First Name: " + name + " - Age: " + age);

هناك طريقة أخرى افضل ايضاً ، بالطريقة التالية :

كود :
Console.Write("First Name: {0} - Age: {1}" ,name,age);

بواسطة الطريقة الثانية ، يمكنك عمل Format للنص باستخدام رموز d للارقام و e لل exponential بالشكل التالي مثلاً :

كود :
Console.WriteLine("E format: {0:E}", 99999);

مجدداً ، لو كنت مبرمج VB.net فلن تضطر سوى لازالة ; من آخر كل سطر ...
الرد }}}
تم الشكر بواسطة:
#2
منقول من المنتدى القديم
كاتب الموضوع احمد جمال

تعريف المتغيرات - عودة مرة أخرى - :

كما ذكرنا في الدروس السابقة يمكننا تعريف المتغيرات بالطريقة التالية :
كود :
int x;
string name;
وخلافه ، ولكنك بالتأكيد تلاحظ وجود الكلمة new في كثير من تعريف المتغيرات ، فما هي مهمتها ؟

بعض الانواع البسيطة يمكن تعريفها باستخدام new وهو ما سيعيدها إلى صورتها الافتراضية الموجودة في المنشئ الخاص بها ، حيث يتم تحويل الانواع المنطقية bool إلى false والارقام إلى صفر وخلافه .

لكن هناك انواع اخرى من البيانات لا يمكنك استخدامها إلا باستخدام new مثل ال objects و arraylists وخلافه مما سنتعرف عليه في حينه .

هذه هو تقسيم الانواع في C# :

[ATTACH=CONFIG]757[/ATTACH]

** الصورة من كتاب ProCSharp 2008 and .net 2008 platform .

جميع الانواع المشتقة من Object تملك بالضرورة طرقه الاساسية مثل Equals و GetHashCode وخلافه .

أما الطرق الاساسية للانواع الرقمية مثل int و long فتشمل الخصائص الاساسية مثل
MaxValue و MinValue ... فيما يحتوي ال char على خصائص مثل IsDigit و IsLetter لتحديد طبيعة المدخلات . ونؤجل الحديث حول String إلى الدرس القادم ...


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#3
منقول من المنتدى القديم
كاتب الموضوع احمد جمال
String :

سنتحدث في درسنا هذا حول كل ما يتعلق بالنوع String .

الخصائص والدوال الاساسية لل String :

Length :
تحدد طول النص .

Compare :
للمقارنة بين نصين .

Contains :
للبحث عن نص او حرف ضمن النص .

EndWith و StartWith :
لمعرفة فيما اذا كان النص يبدأ او ينتهي بحرف او نص معين .

IndexOf و LastIndexOf .
لمعرفة مكان وجود حرف او بداية نص معين ضمن النص ، سواء من البداية او من النهاية .

Remove :
حذف جزء معين من النص .

Insert :
ادراج نص داخل ال String .

Replace :
استبدال جزء من النص .

Split :
تقسيم النص حسب شيء معين إلى مصفوفة ، مثلاً تقسيم النص مع كل علامة (-) إلى مصفوفة جديدة .

ToUpper و ToLower :
لتحويل حالة الاحرف بين capital و small .

كود :
string[] newarray = g.Split("-");
دمج النصوص :
الطريقة الابسط لدمج النصوص هي باستخدام + ، او باستخدام الدالة Concate بالشكل التالي :
كود :
string s3 = String.Concat(s1, s2);

يمكنك مراجعة الرابط التالي مباشرة لاستخدام الطريقة الافضل لدمج النصوص عن طريق StringBuillder .
http://vb4arb.com/vb/showthread.php?1270...5#post3715

مقارنة النصوص :

يمكن استخدام المعامل == لمقارنة النصوص في C# أو = في VB.net ، إلا انه من المفضل استخدام الدالة Equals بالشكل التالي :
كود :
Console.WriteLine(s1.Equals(s2));

Escape Characters

في كل لغات عائلة السي ، تجد حرف / محجوزاً لبعض الحروف الخاصة مثل /n لسطر جديد و /t لعمل Tab وغيره ، بالشكل التالي مثلاً :

كود :
Console.Write("My Name:/nAhmed Gamal");


لذا إذا اردت ان تكتب / فلا بد لك ان تكتب // ، هناك حل آخر وهو استخدام ما يعرف باسمVerbatim Strings حيث يمكنك في هذه الحالة كتابة نص عادي بدون القلق من ال
Escape Characters بالشكل التالي مثلاً :

كود :
Console.WriteLine(@"C:\MyApp\bin\Debug");

التحويل من وإلى String :

تحتوي معظم الانواع الاساسية على الدالة Parse والتي تحول النص إلى مناظره ، بالشكل التالي مثلاً :

كود :
int x = int.Parse("1");
bool v = bool.Parse("True");

كما تحتوي ايضاً على الدالة ToString لتحويلها إلى نص بالشكل التالي مثلاً :
كود :
string x = m.ToString();
الرد }}}
تم الشكر بواسطة:
#4
منقول من المنتدى القديم
كاتب الموضوع احمد جمال
التعامل مع التاريخ والوقت :

تجد جميع ما يتعلق بالتاريخ والوقت في المكتبة DateTime ، فمثلاً لاضافة تاريخ معين :
كود :
DateTime dt = new DateTime(2004, 10, 17);

لطباعة التاريخ الحالي :
كود :
Console.WriteLine(DateTime.Now);

يمكن التعامل مع الوقت أيضاً باستخدام TimeSpan :
كود :
TimeSpan ts = new TimeSpan(4, 30, 0);

الاضافة والطرح باستخدام الداول Add و Substract بالشكل التالي :
كود :
Console.WriteLine(ts.Subtract(new TimeSpan(0, 15, 0)));

كود :
dt = dt.AddMonths(2);

نكتفي بهذا القدر من الحديث حول المتغيرات ، نواصل في الدرس القادم حول التحويل بين انواع المتغيرات المختلفة .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
الرد }}}
تم الشكر بواسطة:
#5
التحويل بين المتغيرات المختلفة :

بداية ، تنقسم التحويلات بين المتغيرات إلى نوعين رئيسين :

1- Widening Conversions
2- Narrowing Conversions

1- Widening Conversions :
يقصد بهذا النوع من التحويلات تلك التحويلات التي لا يمكن فيها خسارة اي نوع من البيانات ، وتسمى باسم upward cast ، مثال ذلك التحويل من Short إلى Integer في المثال التالي :

كود :
Short x=5;
power(x);

وفي الدالة power :

كود :
int power(int number)
{
return number^2;
}

لو لاحظت ستجد ان الدالة تستقبل بيانات من نوع Int فيما ارسلنا لها بيانات من نوع Short ، في هذه الحالة لن تكون هناك مشكلة لإن مدى ال Integer اكبر من مدى ال Short ، وبالتالي فإن اي مدى لل Short يقع ضمن ال Integer بكل تأكيد .

2- Narrowing Conversions

الحالة العكسية ، التحويل من الاكبر إلى الأصغر ، مثلاً لو كان المتغيران من نوع Integer والناتج من نوع Short ، سيعمل الامر بصورة صحيحة لو كان مجموع الرقمين Integer اصغر من الحد الأقصى لل Short ، ولكن لو افترضنا ان مجموعهم تجاوز حدود مدى ال Short فإن ذلك سينتج مشكلة .

لهذا السبب ، يمنعك الكومبايلر مباشرة من كتابة مثل هذا الكود ويعطيك رسالة الخطأ التالية :

Cannot implicitly convert type 'int' to 'short'.

لكن لو رغبنا في التحويل رغماً عن هذه النقطة حتى لو نتج عن ذلك ضياع بعض البيانات ، في هذه الحالة نلجأ لما يسمى بـ Cast :

عمليات ال Cast :

لا تنطبق عمليات ال cast على التحويل من اكبر لأصغر فقط ، بل يمكن استخدامها في كل عمليات التحويل ، ابسط استخدام لها هو لتحويل Integer إلى Short بالشكل التالي :

كود :
int var=10;
short var2 = (short)var;

في المثال السابق ، لو قمنا بطباعة نتيجة var2 سنجد انها 10 ، لكن ماذا لو افترضنا المثال التالي :

كود :
int var=100000;
short var2 = (short)var;
Console.WriteLine(var2);
Console.ReadKey();


النتيجة لن يمكن توقعها ، حيث ستكون النتيجة هي -31072 ، حيث سيقوم الكومبايلر بعكس الاشارات ابتداء من 32768 ومن ثم انقاص رقم مع كل زيادة عن الرقم السابق ، او باختصار فهو يقوم بطرح الرقم الناتج من الحد الاقصى او المدى الاقصى للنوع وهو 32767 .

باستخدام هذا النوع من التحويلات ، فإنه من المفضل دائماً استخدام Try Catsh والتي شرحها الاخ محمد سامر في الدرس السابق ، والتي سنعود لشرحها في مرحلة اخرى من الدورة بالتفصيل .


التحويل باستخدام Convert :

يمكن التحويل بين اي انواع من البيانات باستخدام الفئة Convert بالشكل التالي مثلاً :
كود :
myByte = Convert.ToByte(myInt);

نواصل في الدرس القادم مع الجمل الشرطية في .net والتكرارات Loops .
الرد }}}
تم الشكر بواسطة:



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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم