Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

سلسلة تعلم 100 حزمة من C# في ساعة: الإصدار السنوي 2024
سلسلة تعلم 100 حزمة من C# في ساعة: الإصدار السنوي 2024
سلسلة تعلم 100 حزمة من C# في ساعة: الإصدار السنوي 2024
Ebook376 pages1 hour

سلسلة تعلم 100 حزمة من C# في ساعة: الإصدار السنوي 2024

Rating: 0 out of 5 stars

()

Read preview

About this ebook

هل تريد إتقان أساسيات C# بسرعة؟ "سلسلة تعلم 100 حزمة من C# في ساعة: الإصدار السنوي 2024" هو دليلك الشامل. في هذا الكتاب الإلكتروني، نقدم لكم مجموعة واسعة من الحزم في C#، مصممة لتعزيز فهمك ومهاراتك في البرمجة خلال ساعة واحدة فقط.تشمل المواضيع المغطاة:إدارة البيانات ومعالجتهاتطبيقات الويب والخدماتالتفاعل مع قواعد البياناتوأكثر من ذلك بكثير!استفد من الأمثلة العملية والتمارين البرمجية لتحسين تجربتك التعليمية ولتصبح مبرمج C# فعّال في وقت قصير.

Languageالعربية
Release dateMay 12, 2024
ISBN9798227233189
سلسلة تعلم 100 حزمة من C# في ساعة: الإصدار السنوي 2024

Related to سلسلة تعلم 100 حزمة من C# في ساعة

Related ebooks

Reviews for سلسلة تعلم 100 حزمة من C# في ساعة

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    سلسلة تعلم 100 حزمة من C# في ساعة - رونيا

    Index

    أنواعالقيمةوأنواعالمرجع

    النطاقاتفيC#

    التعاملمعالاستثناءات

    التحولالضمنيوالتحولالصريح

    الكلاساتوالهياكل

    الواجهاتوالتجريد

    التوريثفيC#

    الأساليبالمفرطةوالمعادتحميلهافيC#

    الخصائصفيC#

    المندلعاتوالمجمعاتفيC#

    معالجةالأحداثفيC#

    المعاملاتالمسماةوالاختياريةفيC#

    LINQ: استخدامLanguageIntegratedQuery

    تعددالخيوطوالتزامن

    استخدامasyncوawait

    التفويضاتوالتعبيراتاللامدة

    التبعيضفيC#

    المجموعاتفيC#

    الكلاساتالجزئيةفيC#

    التفاعلمعCOMفيC#

    سلامةالنوعفيC#

    الصندوقوإلغاءالصندوق

    جمعالقمامةفيC#

    التفتيشالنوعيفيC#

    استخدامالسماتفيC#

    الفصولالمجردةوالواجهاتفيC#

    إعادةتعريفالأساليبفيC#

    استخدامالمعاملاتبالمرجعوالخروجفيC#

    الأنماطالشرطيةفيC#

    التكراراتوالإرجاعاتالمبكرةفيC#

    توسيعالأنواعالمعرفةمنقبلالمستخدم

    معالجةالأساليبالمتزامنة

    تأثيرنطاقالمتغيرات

    استخدامالواجهاتالبرمجيةللتطبيقات

    تحليلالكودوإعادةالهيكلة

    التدقيقفيالوقتالحقيقيوالتشخيص

    التوافقمعالإصداراتالسابقة

    استخداممكتباتالطرفالثالث

    أمانالتطبيق

    نشرالتطبيقات

    استخدامالنماذجالبيانيةفيC#

    معالجةالأخطاءفيC#

    تحسينالأداءفيC#

    التوثيقوالتعليقاتفيC#

    مبادئSOLID

    أنماطالتصميم

    كتابةالكودالقابلللاختبار

    إدارةالتغييراتوالإصدارات

    تكاملالنظمفيC#

    الأمانوالتشفيرفيC#

    اختبارالوحدةوالاختباراتالآلية

    التكاملالمستمروالتوصيلالمستمر

    الاعتمادعلىالحقنفيC#

    التعاملمعالتكوينفيC#

    الاستجابةللأخطاءفيC#

    دمجمحركاتالبحثفيتطبيقاتC#

    تطويرواجهاتالمستخدمفيC#

    الوصولإلىقواعدالبياناتفيC#

    التطويرالموجهبالسلوك (BDD)

    تطويرتطبيقاتالهاتفالمحمولباستخدامXamarin

    العملمعالسحابةفيC#

    استخدامالتخزينالمؤقتفيC#

    التعاملمعالملفاتوالمجلداتفيC#

    تحديدالمواردوالاستخداماتالدوليةفيC#

    تحديدالجودةوالاختبارات

    الربطالديناميكيوالانعكاس

    التصحيحوالمراقبة

    التفاعلمعالأجهزة

    التحديثاتوالصيانةالمستمرة

    النسخالاحتياطيواستعادةالبيانات

    التعاملمعالإشعاراتوالتنبيهاتفيC#

    التعاملمعالوقتوالتاريخفيC#

    التعاملمعالبياناتالماليةفيC#

    استخدامالأنماطالجبريةفيتصميمالبرامج

    معالجةالصوروالرسومياتفيC#

    استخدامالتعبيراتالمنتظمةفيC#

    التعاملمعالشبكاتفيC#

    التفاعلمعواجهاتبرمجةالتطبيقاتالويبفيC#

    تطويرالتطبيقاتمتعددةالمنصاتباستخدام .NETCore

    الترحيلإلى .NETCore

    استخدامC# فيالذكاءالاصطناعيوالتعلمالآلي

    استخدامالنماذجالبيانيةوORMفيC#

    الأمانفيالاتصالات

    التعاملمعالمعاملاتالمالية

    المحاكاةوالنمذجةفيC#

    التطبيقاتالموزعةوالخدماتالصغرى

    الأمانوالخصوصيةفيC#

    الاستخدامالمعقولللأنماطفيC#

    التعاملمعالبياناتالكبيرةفيC#

    تحسينواجهاتالمستخدمالجرافيكيةباستخدامWPF

    التعاملمعالبياناتفيالزمنالحقيقي

    الاختباراتالوظيفيةوالتحققمنالصحة

    تطويرالألعابباستخدامC#

    استخدامVisualStudioلتطويرC#

    المكتباتوالأطرفيC#

    التحققمنالصحةوالتصحيحفيC#

    إدارةدورةحياةالتطبيق

    التوثيقالفنيوالتدريب

    البرمجةبالنماذجفيC#

    إدارةالتحدياتوالأخطاءفيC#

    استخداممكتبةالأدواتالعامة (TPL)

    التعاملمعالمعلوماتالحساسة

    معاييرالصناعةفيC#

    مبادئالبرمجةالوظيفيةفيC#

    Introduction

    مرحبًا بكم في رحلة اكتشاف لغة البرمجة C#. إذا كنت قد بدأت للتو في تعلم C# أو تحتاج إلى تحديث معلوماتك حول الأساسيات الحيوية، فإن هذا الكتاب مصمم خصيصًا لك. في هذا الدليل، نركز فقط على المعارف الأساسية التي يحتاج كل مبرمج مبتدئ لفهمها وإتقانها لتطوير تطبيقات فعالة وحديثة باستخدام C#.

    الكتاب مثالي أيضًا للمبرمجين ذوي الخبرة الذين يرغبون في استعراض وتحديث المفاهيم الضرورية في أحدث إصدارات C#. هدفنا هو تزويدك بكل ما تحتاجه من معلومات بشكل مكثف ومباشر، مما يمكنك من تعزيز مهاراتك بكفاءة وسرعة.

    إذا وجدت هذا الكتاب مفيدًا، يرجى ترك تقييم وتعليقاتك. مشاركتك تساعد مهندسين آخرين في نفس الظروف للعثور على هذا الدليل والاستفادة منه. تعليقاتك تشجعنا وتدعمنا في تقديم المزيد من المواد القيمة والمفيدة في المستقبل.

    1

    أنواع القيمة وأنواع المرجع


    في لغة البرمجة C#، يُعتبر فهم الفرق بين الأنواع القيمة (Value Types) والأنواع المرجعية (Reference Types) أساسيًا لإدارة الذاكرة بفعالية.


    سأقدم مثالًا على تعريف نوع قيمة ونوع مرجعي وكيف يمكن تغيير القيم في كل منهما.

    [Code]

    int valueNumber = 5; // نوع قيمة

    int[] referenceArray = new int[1]; // نوع مرجعي

    referenceArray[0] = valueNumber; // نسخ قيمة إلى مصفوفة

    valueNumber = 10; // تغيير القيمة الأصلية

    ––––––––

    [Result]

    القيم في المصفوفة لا تتغير وتظل 5.

    ––––––––

    في المثال أعلاه، valueNumber هو متغير من نوع القيمة حيث يتم تخزين القيم مباشرة في موقع الذاكرة الذي يُخصص لهذا المتغير. عندما نقوم بتغيير valueNumber إلى 10، فإن هذا التغيير لا يؤثر على referenceArray[0] لأن القيمة في referenceArray[0] هي نسخة من القيمة الأصلية وليست القيمة الأصلية نفسها. الأنواع المرجعية مثل المصفوفات تخزن الإشارات إلى الأماكن في الذاكرة حيث تُحفظ البيانات وليس البيانات نفسها.

    ––––––––

    [Trivia]

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

    2

    النطاقات في C#


    في C#، معرفة نطاق المتغيرات (Scopes) ضرورية لتجنب أخطاء برمجية قد تنجم عن الوصول غير المنتظر لهذه المتغيرات.


    سأعرض كيف يمكن أن يؤدي نطاق متغير إلى أخطاء برمجية إذا لم يُدرس بعناية.

    [Code]

    public void ExampleMethod() {

    int outerVariable = 5;

    if (true) {

    int innerVariable = 10;

    outerVariable = innerVariable;

    }

    // محاولة الوصول إلى innerVariable هنا ستؤدي إلى خطأ

    // Console.WriteLine(innerVariable);

    }

    ––––––––

    [Result]

    سيؤدي محاولة تشغيل الكود إلى خطأ، لأن innerVariable غير متوفرة خارج الكتلة التي تم تعريفها فيها.

    ––––––––

    في المثال أعلاه، innerVariable معرفة داخل كتلة الشرط if وبالتالي يقتصر نطاقها على هذه الكتلة فقط. محاولة استدعاء innerVariable خارج هذه الكتلة ستؤدي إلى خطأ برمجي لأن المتغير لا يُعتبر موجودًا خارج نطاقه. تعلم تحديد نطاقات المتغيرات وفهمها يمكن أن يساعد في تجنب الأخطاء المحتملة ويحسن من صيانة الكود.

    ––––––––

    [Trivia]

    النطاق يمكن أن يكون عاملاً حاسماً في تصميم البرامج بحيث يمنع تداخل البيانات ويحافظ على البيانات محمية ضمن الكتلة التي تستخدم فيها. فهم النطاق يساعد أيضا في تقليل استهلاك الذاكرة وتحسين أداء التطبيق.4

    3

    التعامل مع الاستثناءات


    في لغة البرمجة C#، يُعد التعامل مع الاستثناءات أساسيًا لبناء تطبيقات مستقرة وموثوقة.


    فيما يلي مثال بسيط يوضح كيفية استخدام جمل try, catch و finally لإدارة الاستثناءات في C#.

    [Code]

    try

    {

    int x = 10;

    int y = 0;

    int result = x / y;

    Console.WriteLine(result);

    }

    catch (DivideByZeroException ex)

    {

    Console.WriteLine(لا يمكن قسمة أي عدد على صفر.);

    }

    finally

    {

    Console.WriteLine(هذا الكود سيتم تنفيذه دائمًا.);

    }

    ––––––––

    [Result]

    لا يمكن قسمة أي عدد على صفر.

    هذا الكود سيتم تنفيذه دائمًا.

    ––––––––

    في الكود أعلاه، حاولنا قسمة العدد 10 على صفر، وهو ما يؤدي إلى إثارة استثناء من نوع DivideByZeroException. الكتلة catch تمسك هذا الاستثناء وتعالجه بطباعة رسالة خطأ. الكتلة finally تحتوي على كود يتم تنفيذه سواء أثير الاستثناء أم لا، مما يجعلها مثالية لتنفيذ أكواد التنظيف أو الإغلاق.

    ––––––––

    [Trivia]

    استخدام كتل finally مهم خصوصًا عند التعامل مع موارد يجب إطلاقها أو إغلاقها بشكل صحيح، مثل الملفات أو الاتصالات الشبكية.

    4

    التحول الضمني والتحول الصريح


    معرفة الفرق بين التحول الضمني والتحول الصريح في C# هو أمر ضروري لتجنب أخطاء البرمجة المتعلقة بأنواع البيانات.


    المثال التالي يبين كيفية استخدام التحول الضمني والتحول الصريح بين أنواع مختلفة.

    [Code]

    int myInt = 10;

    double myDouble = myInt; // تحول ضمني

    double anotherDouble = 9.78;

    int myInteger = (int)anotherDouble; // تحول صريح

    Console.WriteLine(القيمة الصحيحة: {0}, myInteger);

    ––––––––

    [Result]

    القيمة الصحيحة: 9

    ––––––––

    في المثال أعلاه، قمنا بتحويل متغير من نوع int إلى double بشكل ضمني دون الحاجة لكتابة أي كود إضافي، لأنه لا يوجد خطر من فقدان الدقة. ولكن عند التحويل من double إلى int، استخدمنا التحول الصريح باستخدام عملية التكاست (int) لأن هذا التحويل قد يؤدي إلى فقدان للمعلومات، في هذه الحالة فقدان الكسور.

    ––––––––

    [Trivia]

    فهم التحولات بين أنواع البيانات مهم جداً لتجنب الأخطاء البرمجية الشائعة مثل فقدان الدقة أو Overflow و Underflow الذي قد يحدث عند التعامل مع أنواع بيانات الأعداد الكبيرة أو الصغيرة.4

    5

    الكلاسات والهياكل


    يجب على المبرمجين فهم الفروقات بين الكلاسات والهياكل وكيفية استخدام كل منهما.


    الكود التالي يوضح إنشاء كلاس وهيكل في C# ويستعرض الفروقات الأساسية بينهما.

    [Code]

    // تعريف كلاس يمثل نقطة ثنائية الأبعاد

    public class PointClass

    {

    public int X;

    public int Y;

    }

    // تعريف هيكل يمثل نقطة

    Enjoying the preview?
    Page 1 of 1