الدرس الخامس : الأنواع والدوال الرئيسية . - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138) +---- الموضوع : الدرس الخامس : الأنواع والدوال الرئيسية . (/showthread.php?tid=5257) |
الدرس الخامس : الأنواع والدوال الرئيسية . - oneyemenweb2 - 06-10-12 منقول من المنتدى القديم كاتب الموضوع احمد جمال بتاريخ 25-02-08 خصائص Console : حتى هذه المرحلة من الدروس ، نستطيع الآن الكتابة على الشاشة وعمل دوال واستدعاءها واسترجاع قيم وطباعتها ، عند هذه المرحلة سنأخذ راحة قصيرة للتعرف على العناصر الاساسية للبيئة Console التي نعمل عليها حالياً . اهم الدوال التي تحتويها الفئة Console هي دوال الادخال والاخراج ، وهي : كود : Console.Write(string); لو كنت مبرمج 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 فلن تضطر سوى لازالة ; من آخر كل سطر ... الدرس الخامس : الأنواع والدوال الرئيسية . - oneyemenweb2 - 06-10-12 منقول من المنتدى القديم كاتب الموضوع احمد جمال تعريف المتغيرات - عودة مرة أخرى - : كما ذكرنا في الدروس السابقة يمكننا تعريف المتغيرات بالطريقة التالية : كود : int x; بعض الانواع البسيطة يمكن تعريفها باستخدام 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 إلى الدرس القادم ... الدرس الخامس : الأنواع والدوال الرئيسية . - oneyemenweb2 - 06-10-12 منقول من المنتدى القديم كاتب الموضوع احمد جمال 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-Tips-and-tricks-%D1%DE%E3-1-StringBuilder&p=3715#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"); كما تحتوي ايضاً على الدالة ToString لتحويلها إلى نص بالشكل التالي مثلاً : كود : string x = m.ToString(); الدرس الخامس : الأنواع والدوال الرئيسية . - oneyemenweb2 - 06-10-12 منقول من المنتدى القديم كاتب الموضوع احمد جمال التعامل مع التاريخ والوقت : تجد جميع ما يتعلق بالتاريخ والوقت في المكتبة 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); نكتفي بهذا القدر من الحديث حول المتغيرات ، نواصل في الدرس القادم حول التحويل بين انواع المتغيرات المختلفة . والله الموفق ... والسلام عليكم ورحمة الله وبركاته . الدرس الخامس : الأنواع والدوال الرئيسية . - oneyemenweb2 - 06-10-12 التحويل بين المتغيرات المختلفة : بداية ، تنقسم التحويلات بين المتغيرات إلى نوعين رئيسين : 1- Widening Conversions 2- Narrowing Conversions 1- Widening Conversions : يقصد بهذا النوع من التحويلات تلك التحويلات التي لا يمكن فيها خسارة اي نوع من البيانات ، وتسمى باسم upward cast ، مثال ذلك التحويل من Short إلى Integer في المثال التالي : كود : Short x=5; وفي الدالة power : كود : int power(int number) لو لاحظت ستجد ان الدالة تستقبل بيانات من نوع 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; في المثال السابق ، لو قمنا بطباعة نتيجة var2 سنجد انها 10 ، لكن ماذا لو افترضنا المثال التالي : كود : int var=100000; النتيجة لن يمكن توقعها ، حيث ستكون النتيجة هي -31072 ، حيث سيقوم الكومبايلر بعكس الاشارات ابتداء من 32768 ومن ثم انقاص رقم مع كل زيادة عن الرقم السابق ، او باختصار فهو يقوم بطرح الرقم الناتج من الحد الاقصى او المدى الاقصى للنوع وهو 32767 . باستخدام هذا النوع من التحويلات ، فإنه من المفضل دائماً استخدام Try Catsh والتي شرحها الاخ محمد سامر في الدرس السابق ، والتي سنعود لشرحها في مرحلة اخرى من الدورة بالتفصيل . التحويل باستخدام Convert : يمكن التحويل بين اي انواع من البيانات باستخدام الفئة Convert بالشكل التالي مثلاً : كود : myByte = Convert.ToByte(myInt); نواصل في الدرس القادم مع الجمل الشرطية في .net والتكرارات Loops . |