02-16-2010, 03:24 AM
|
|
مبرمج المنتدى الادارة تكليف لا تشريف
|
|
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
|
|
الدرس الخامس : الأنواع والدوال الرئيسية .net 2008
خصائص Console :
حتى هذه المرحلة من الدروس ، نستطيع الآن الكتابة على الشاشة وعمل دوال واستدعاءها واسترجاع قيم وطباعتها ، عند هذه المرحلة سنأخذ راحة قصيرة للتعرف على العناصر الاساسية للبيئة Console التي نعمل عليها حالياً .
اهم الدوال التي تحتويها الفئة Console هي دوال الادخال والاخراج ، وهي :
كود PHP:
Console.Write(string);
// لكتابة نص .
Console.WriteLine(string)
// لكتابة نص مع ضغط الانتقال لسطر جديد بعد الإنتهاء .
string x=Console.ReadLine();
// لقراءة مدخلات من المستخدم ويتم الانتهاء من القراءة مع ضغط انتر
int x=Console.ReadKey();
// قراءة حرف واحد فقط ويتم انهاء عملية القراءة مع ضغط إنتر
ConsoleKeyInfo r= Console.ReadKey();
// قراءة حرف واحد فقط والانتهاء من القراءة بعد إدخاله ، يمكن ادخال اي شيء مثل زر الأسهم مثلاً لذا يتم تخزين الناتج في متغير خاص
لو كنت مبرمج VB.net ، فقط ازل ال ; من آخر الجملة .
دوال أخرى خاصة بعمليات الألوان مثل ForeGroundColor للون النص و BackgroundColor للون الخلفية ، تستطيع تعيين اللون عن طريق الفئة ConsoleColor بالشكل التالي :
كود PHP:
Console.ForegroundColor = ConsoleColor.Yellow;
هناك خصائص أخرى مثل WindowWidth و Title وخلافها لتحديد مظهر النافذة .
نعود لأحد مواضيع الطباعة ، لنفترض اننا نريد القيام بطباعة النص التالي :
الإسم : (المتغير name ) - العمر (المتغير Age )
يمكننا القيام بذلك عن طريق كتابة الكود التالي :
كود PHP:
Console.Write("First Name: " + name + " - Age: " + age);
هناك طريقة أخرى افضل ايضاً ، بالطريقة التالية :
Console.Write("First Name: {0} - Age: {1}" ,name,age);
بواسطة الطريقة الثانية ، يمكنك عمل Format للنص باستخدام رموز d للارقام و e لل exponential بالشكل التالي مثلاً :
كود PHP:
Console.WriteLine("E format: {0:E}", 99999);
مجدداً ، لو كنت مبرمج VB.net فلن تضطر سوى لازالة ; من آخر كل سطر ...
تعريف المتغيرات - عودة مرة أخرى - :
كما ذكرنا في الدروس السابقة يمكننا تعريف المتغيرات بالطريقة التالية :
كود PHP:
int x;
string name;
خلافه ، ولكنك بالتأكيد تلاحظ وجود الكلمة new في كثير من تعريف المتغيرات ، فما هي مهمتها ؟
بعض الانواع البسيطة يمكن تعريفها باستخدام new وهو ما سيعيدها إلى صورتها الافتراضية الموجودة في المنشئ الخاص بها ، حيث يتم تحويل الانواع المنطقية bool إلى false والارقام إلى صفر وخلافه .
لكن هناك انواع اخرى من البيانات لا يمكنك استخدامها إلا باستخدام new مثل ال objects و arraylists وخلافه مما سنتعرف عليه في حينه .
هذه هو تقسيم الانواع في C# :
** الصورة من كتاب ProCSharp 2008 and .net 2008 platform .
جميع الانواع المشتقة من Object تملك بالضرورة طرقه الاساسية مثل Equals و GetHashCode وخلافه .
أما الطرق الاساسية للانواع الرقمية مثل int و long فتشمل الخصائص الاساسية مثل
MaxValue و MinValue ... فيما يحتوي ال char على خصائص مثل IsDigit و IsLetter لتحديد طبيعة المدخلات . ونؤجل الحديث حول String إلى الدرس القادم ...
String :
سنتحدث في درسنا هذا حول كل ما يتعلق بالنوع String .
الخصائص والدوال الاساسية لل String :
Length :
تحدد طول النص .
Compare :
للمقارنة بين نصين .
Contains :
للبحث عن نص او حرف ضمن النص .
EndWith و StartWith :
لمعرفة فيما اذا كان النص يبدأ او ينتهي بحرف او نص معين .
IndexOf و LastIndexOf .
لمعرفة مكان وجود حرف او بداية نص معين ضمن النص ، سواء من البداية او من النهاية .
Remove :
حذف جزء معين من النص .
Insert :
ادراج نص داخل ال String .
Replace :
استبدال جزء من النص .
Split :
تقسيم النص حسب شيء معين إلى مصفوفة ، مثلاً تقسيم النص مع كل علامة (-) إلى مصفوفة جديدة .
ToUpper و ToLower :
لتحويل حالة الاحرف بين capital و small .
كود PHP:
string[] newarray = g.Split("-");
دمج النصوص :
الطريقة الابسط لدمج النصوص هي باستخدام + ، او باستخدام الدالة Concate بالشكل التالي :
كود PHP:
string s3 = String.Concat(s1, s2);
يمكنك مراجعة الرابط التالي مباشرة لاستخدام الطريقة الافضل لدمج النصوص عن طريق StringBuillder .
http://vb4arab.com/vb/showthread.php?p=57289
مقارنة النصوص :
يمكن استخدام المعامل == لمقارنة النصوص في C# أو = في VB.net ، إلا انه من المفضل استخدام الدالة Equals بالشكل التالي :
كود PHP:
Console.WriteLine(s1.Equals(s2));
Escape Characters
في كل لغات عائلة السي ، تجد حرف / محجوزاً لبعض الحروف الخاصة مثل /n لسطر جديد و /t لعمل Tab وغيره ، بالشكل التالي مثلاً :
كود PHP:
Console.Write("My Name:/nAhmed Gamal");
لذا إذا اردت ان تكتب / فلا بد لك ان تكتب // ، هناك حل آخر وهو استخدام ما يعرف باسمVerbatim Strings حيث يمكنك في هذه الحالة كتابة نص عادي بدون القلق من ال
Escape Characters بالشكل التالي مثلاً :
كود PHP:
Console.WriteLine(@"C:\MyApp\bin\Debug");
التحويل من وإلى String :
تحتوي معظم الانواع الاساسية على الدالة Parse والتي تحول النص إلى مناظره ، بالشكل التالي مثلاً :
كود PHP:
int x = int.Parse("1");
bool v = bool.Parse("True");
كما تحتوي ايضاً على الدالة ToString لتحويلها إلى نص بالشكل التالي مثلاً :
كود PHP:
string x = m.ToString();
StringBuillder :
فئة مطورة من ال String تحتوي على مميزات اضافية مثل دالة دمج النصوص السابقة الذكر Append .
التعامل مع التاريخ والوقت :
تجد جميع ما يتعلق بالتاريخ والوقت في المكتبة DateTime ، فمثلاً لاضافة تاريخ معين :
DateTime dt = new DateTime(2004, 10, 17);
لطباعة التاريخ الحالي :
كود PHP:
Console.WriteLine(DateTime.Now);
يمكن التعامل مع الوقت أيضاً باستخدام TimeSpan :
كود PHP:
TimeSpan ts = new TimeSpan(4, 30, 0);
الاضافة والطرح باستخدام الداول Add و Substract بالشكل التالي :
كود PHP:
Console.WriteLine(ts.Subtract(new TimeSpan(0, 15, 0)));
أو
كود PHP:
dt = dt.AddMonths(2);
نكتفي بهذا القدر من الحديث حول المتغيرات ، نواصل في الدرس القادم حول التحويل بين انواع المتغيرات المختلفة .
التحويل بين المتغيرات المختلفة :
بداية ، تنقسم التحويلات بين المتغيرات إلى نوعين رئيسين :
1- Widening Conversions
2- Narrowing Conversions
1- Widening Conversions :
يقصد بهذا النوع من التحويلات تلك التحويلات التي لا يمكن فيها خسارة اي نوع من البيانات ، وتسمى باسم upward cast ، مثال ذلك التحويل من Short إلى Integer في المثال التالي :
كود PHP:
Short x=5;
power(x);
وفي الدالة power :
كود PHP:
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 بالشكل التالي :
كود PHP:
int var=10;
short var2 = (short)var;
في المثال السابق ، لو قمنا بطباعة نتيجة var2 سنجد انها 10 ، لكن ماذا لو افترضنا المثال التالي :
كود PHP:
int var=100000;
short var2 = (short)var;
Console.WriteLine(var2);
Console.ReadKey();
النتيجة لن يمكن توقعها ، حيث ستكون النتيجة هي -31072 ، حيث سيقوم الكومبايلر بعكس الاشارات ابتداء من 32768 ومن ثم انقاص رقم مع كل زيادة عن الرقم السابق ، او باختصار فهو يقوم بطرح الرقم الناتج من الحد الاقصى او المدى الاقصى للنوع وهو 32767 .
باستخدام هذا النوع من التحويلات ، فإنه من المفضل دائماً استخدام Try Catsh والتي شرحها الاخ محمد سامر في الدرس السابق ، والتي سنعود لشرحها في مرحلة اخرى من الدورة بالتفصيل .
التحويل باستخدام Convert :
يمكن التحويل بين اي انواع من البيانات باستخدام الفئة Convert بالشكل التالي مثلاً :
كود PHP:
myByte = Convert.ToByte(myInt);
نواصل في الدرس القادم مع الجمل الشرطية في .net والتكرارات Loops .
توقيع : khaledbelal |
(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}). سورة الأعراف.
|
|