إظهار الرسائل ذات التسميات advance-csharp. إظهار كافة الرسائل
إظهار الرسائل ذات التسميات advance-csharp. إظهار كافة الرسائل
برمجة متقدمة سي شارب القائمة المرتبة C# - SortedList Class
القائمة المرتبة C# - SortedList Class
ماهي القائمة المرتبة؟
القائمة المرتبة تمثل مجموعة من زوج يحتوي على القيمة value والمفتاح key ويمكن الوصول اليها بالفهرس أو المفتاح.القائمة المرتبة هي مزيج بين جدوال التجزئة والمصفوفات في حال استخدمت الفهرس للوصول الي عناصرالقائمة المرتبة فهي اذن مصفوفة قائمة وفي حال استخدمت المفتاح للوصول لعناصر القائمة المرتبة فهي اذن جدول التجزئة.
دوال وخصائص القائمة المرتبة
اولا خصائص القائمة المرتبة
الخاصية | الوصف |
---|---|
Capacity | كتابة او قراءة سعة القائمة المرتبة |
Count | قراءة عدد العناصر التي تحتويها القائمة المرتبة |
IsFixedSize | قراءة القيمةالتي تشير هل القائمة المرتبة ذات حجم ثابت |
IsReadOnly | قراءة القيمةالتى تشير هل ان القائمة المرتبة للقراءة فقط |
Item | قراءة وكتابة القيمة المرتبطة مع المفتاح المحدد في القائمة المرتبة |
Keys | قراءة المفاتيح في القائمة المرتبة |
Values | قراءة القيم في القائمة المرتبة |
دوال القائمة المرتبة
التسلسل | الدالة والوصف |
---|---|
1 | public virtual void Add( object key, object value ); اضافة عنصر حسب المفتاح والقيمة المعطاة الى القائمة المرتبة |
2 | public virtual void Clear(); حذف كل العناصر من القائمة المرتبة |
3 | public virtual bool ContainsKey( object key ); تحديد اذا ماكانت القائمة المرتبة تحتوي على المفتاح المحدد ام لا |
4 | public virtual bool ContainsValue( object value ); تحديد إذا ماكانت القائمة المرتبة تحتوي على القيمة المحددة |
5 | public virtual object GetByIndex( int index ); قراءة القيمة حسب الفهرس المعطى في القائمة المرتبة |
6 | public virtual object GetKey( int index ); قراء قيمة المفتاح حسب الفهرس المعطى في القائمة المرتبة |
7 | public virtual IList GetKeyList(); قراءة المفاتيح في القائمة المرتبة |
8 | public virtual IList GetValueList(); قراءة القيم في القائمة المرتبة |
9 | public virtual int IndexOfKey( object key ); تعيد قيمة صفر اعتماد على اساس الفهرس لقيمة المفتاح المحدد القئمة المرتبة |
10 | public virtual int IndexOfValue( object value ); تعيد قيمة صفر اعتماد على اساس الفهرس لاول قيمة يجدها للقيمة المحدد في القائئمة المرتبة |
11 | public virtual void Remove( object key ); ازالة العنصر حسب قيمة المفتاح الممرر في القائمة المرتبة |
12 | public virtual void RemoveAt( int index ); ازالة العنصر حسب قيمة الفهرس المرر للقائمة المرتبة |
13 | public virtual void TrimToSize(); تحديد سعة العناصر حسب الرقم في القائمة المرتبة |
مثال على القائمة المرتبة
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { SortedList sl = new SortedList(); sl.Add("001", "Zara Ali"); sl.Add("002", "Abida Rehman"); sl.Add("003", "Joe Holzner"); sl.Add("004", "Mausam Benazir Nur"); sl.Add("005", "M. Amlan"); sl.Add("006", "M. Arif"); sl.Add("007", "Ritesh Saikia"); if (sl.ContainsValue("Nuha Ali")) { Console.WriteLine("This student name is already in the list"); } else { sl.Add("008", "Nuha Ali"); } // get a collection of the keys. ICollection key = sl.Keys; foreach (string k in key) { Console.WriteLine(k + ": " + sl[k]); } } } }
ناتج مثال القائمة المرتبة
001: Zara Ali 002: Abida Rehman 003: Joe Holzner 004: Mausam Banazir Nur 005: M. Amlan 006: M. Arif 007: Ritesh Saikia 008: Nuha Ali
Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO Expert ,PHP,C#,ASPX,SQL
Al alami st
gaza -jabalia, Gaza Strip
Palestine
DOB: 05/10/1984
20/1/2014
برمجة متقدمة سي شارب المجموعات أو التجميعات C# - Collections
المجموعات أو التجميعات C# - Collections
ماهي المجموعات أوالتجميعات؟
المجموعات أو التجميعات هي عبارة عن فئات خاصة تستخدم لتخزين واستعادة البيانات. وهذه الفئات تدعم كل من المكدسات والطوابير والقوائم وتجزئة الجداول. ومعظم فئات المجموعات تقوم بتنفيذ نفس الواجهة.والمجموعات أو التجميعات تستخدم للوصول الى مواقع الذاكراة الديناميكية والوصول لعناصر القائمة اعتمادا على اساس الفهرس.
والى اخره من الاستخدمات.
وهذه المجموعات تنشء مجموعة من الكائنات لمجموعة من الفئات وهي أساس لكل أنواع البيانات في السي شارب.
أنواع فئات المجموعات أو التجميعات واستخدامها
جميع فئات المجموعات أو التجميعات تستخدم فضاء الاسماء system.collections .
الفئة | وصف واستخدام المجموعات |
---|---|
ArrayList |
تمثل لمجموعة مرتبة لكان يمكن فهرسته فردا فرد
وهي في الاساس بديل للمصفوفات ومع ذلك في لا تشبه المصفوفات حيث يمكنك اضافة وحذف العناصر من القائمة في الموقع المحدد باستخدام الفهرس وحيث المصفوفة تقوم بتغير حجم المصفوفة بنفسها تلقائيا.كما أنها تسمح بتخصيص المساحة في الذواكر الديناميكية وتضيف وتبحث وترتيب العناصر في القائمة.
|
Hashtable |
تستخدم مفتاح للوصول للعناصر في المجموعات
الجدول المجزء يستخدم عندما نجناتج للوصول للعناصر باستخدام المفتاح وبامكانك تعريف قيمة مفتاحية تستخدمها.وكل عنصر في الجدول المجزء له زوج من المفتاح وقيمته.حيث المفتاح يستخدم للوصول للمجموعة
|
SortedList |
تستخدم المفتاح مثلما يستخدم الفهرس للوصول لعناصر القائمة
القائمة المرتبة هي عبارة عن تركيب أو خليط من المصفوفات وجداول المجزئة. تحتوي على قائمة من العناصر التي يمكن الوصول اليها بالمفتاح أو الفهرس . إذا أردت الوصول للعناصر بواسطة الفهرس فانه يستخدم مصفوفات القوائم وفي حال استخدم المفتاح للوصول للعناصر فانه يستخدم جدول التجزئة.دائما يتم ترتيب العناصر بواسطة قيمة المفتاح
|
Stack |
انها تمثل الداخل أخيرا خارج أولا لكائن المجموعة ويعرف بالمكدس
تستخدم عندما نحتاج للوصول لعناصر نريدها الداخل أخيرا خارج أولا.وعندما نحتاج أضافة عنصر فانها تسمى
PUSHING
وعندما نريد حذف عنصر تسمى
popping
|
Queue | الطابور ويمثل الداخل أولا خارج أخيرا لكائن المجموعة تستخدم عندما نحتاج للوصول لعناصر الداخل أولا خارج أخير . عندما تستخدم لاضافة عنصر في القائمة فانها تستدعي
enqueue
وعندما تريد حذف عنصر تستدعي
deque
|
BitArray |
Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO Expert ,PHP,C#,ASPX,SQL
Al alami st
gaza -jabalia, Gaza Strip
Palestine
DOB: 05/10/1984
18/1/2014
برمجة متقدمة سي شارب الأحداث C# - Events
برمجة متقدمة سي شارب الأحداث C# - Events
ماهي الاحداث؟
الاحداث هي تفاعل المستخدم مع الحاسوب أو البرنامج. فالضغط على لوحة المفاتيح يسمى بحدث الضغط . تحريك الفارة يسمى بحدث تحريك الفارة.فاي شيء من العتاد الحاسوبي الذي يمكن للمستخدم التفاعل معه ومع برنامج يسمى بالاحداث لانه نتيجة ذلك يتم وقوع الحدث وعلى سبيل المثال في حدث الضغط على مفاتيح لوحة المفاتيح نجد ان المستخدم قام بالحدث وهو الضغط وهناك حدث عكسه وهو رفع الضغط عن المفاتيح.
استخدام التفويض مع الاحداث
يصرح عن الاحداث وتطلق من الفئة بالتعاون مع مقبض الحدث event handler باستخدام التفويض اما من داخل الفئة نفسها او فئات اخرى.
الفئة التي تحتوي على الحدث تستخدم لنشر الحدث تسمى بالفئة الناشرة publisher class. والفئة التي تستخدم الحدث تسمى بالفئة المشتركة subscriber. الاحداث تستخدم النموذج الناشر المشترك.
الناشر عبارة عن كائن يحتوي على الاحداث والتفويضات. تفويض الحدث المساعد ايضا يعرف داخل الكائن. الفئة الناشرة تستدعي الحدث وتعلم الكائنات الاخرى.
المشترك عبارة عن كائن يستقبل الحدث وهو يزود بمقبض الحدث . التفويض في كائن الناشر يقوم باستدعاء مقبض الحدث من كائن المشترك.
الاعلان أو التصريح عن الاحداث
للتصريح عن الاحداث اولا يجب التصريح عن التفويض ونوعه والباراميتر الذي يمرره اي بمعنى يطابق الحدث او الاحداث.
التصريح عن التفويض للحدث.
public delegate void BoilerLogHandler(string status);
التصريح عن الاحداث باستخدام الكلمة المحجوزة event
//تعريف حدث مبني على التفويض السابق public event BoilerLogHandler BoilerEventLog;
مثال الاول على الاحداث
using System; namespace SimpleEvent { using System; public class EventTest { private int value; public delegate void NumManipulationHandler(); public event NumManipulationHandler ChangeNum; protected virtual void OnNumChanged() { if (ChangeNum != null) { ChangeNum(); } else { Console.WriteLine("Event fired!"); } } public EventTest(int n ) { SetValue(n); } public void SetValue(int n) { if (value != n) { value = n; OnNumChanged(); } } } public class MainClass { public static void Main() { EventTest e = new EventTest(5); e.SetValue(7); e.SetValue(11); Console.ReadKey(); } } }
ناتج مثال الاول على الاحداث
Event Fired! Event Fired! Event Fired!
مثال الثاني على الاحداث
using System; using System.IO; namespace BoilerEventAppl { // boiler class class Boiler { private int temp; private int pressure; public Boiler(int t, int p) { temp = t; pressure = p; } public int getTemp() { return temp; } public int getPressure() { return pressure; } } // event publisher class DelegateBoilerEvent { public delegate void BoilerLogHandler(string status); //Defining event based on the above delegate public event BoilerLogHandler BoilerEventLog; public void LogProcess() { string remarks = "O. K"; Boiler b = new Boiler(100, 12); int t = b.getTemp(); int p = b.getPressure(); if(t > 150 || t < 80 || p < 12 || p > 15) { remarks = "Need Maintenance"; } OnBoilerEventLog("Logging Info:\n"); OnBoilerEventLog("Temparature " + t + "\nPressure: " + p); OnBoilerEventLog("\nMessage: " + remarks); } protected void OnBoilerEventLog(string message) { if (BoilerEventLog != null) { BoilerEventLog(message); } } } // this class keeps a provision for writing into the log file class BoilerInfoLogger { FileStream fs; StreamWriter sw; public BoilerInfoLogger(string filename) { fs = new FileStream(filename, FileMode.Append, FileAccess.Write); sw = new StreamWriter(fs); } public void Logger(string info) { sw.WriteLine(info); } public void Close() { sw.Close(); fs.Close(); } } // The event subscriber public class RecordBoilerInfo { static void Logger(string info) { Console.WriteLine(info); }//end of Logger static void Main(string[] args) { BoilerInfoLogger filelog = new BoilerInfoLogger("e:\\boiler.txt"); DelegateBoilerEvent boilerEvent = new DelegateBoilerEvent(); boilerEvent.BoilerEventLog += new DelegateBoilerEvent.BoilerLogHandler(Logger); boilerEvent.BoilerEventLog += new DelegateBoilerEvent.BoilerLogHandler(filelog.Logger); boilerEvent.LogProcess(); Console.ReadLine(); filelog.Close(); }//end of main }//end of RecordBoilerInfo }
ناتج مثال الحدث
Logging info: Temperature 100 Pressure 12 Message: O. K
Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL
SEO experience,PHP,C#,ASPX,SQL
Al alami st
gaza -jabalia, Gaza Strip
Palestine
DOB: 05/10/1984
by +Ahmed Almahallawi
by +Ahmed Almahallawi
12/1/2014
الاشتراك في:
الرسائل (Atom)