أهم أقسام المدونة

الصفحات

الثلاثاء، 8 فبراير 2022

فهرس كتاب سي شارب 10

 فهرس كتاب من الصفر إلى الاحتراف سي شارب 10

 

لقراءة مقدمة الكتاب

للحصول على الكتاب

 

•  مقدمة .... 7

 

-1-

قصة حياة سي شارب

 

•  من الحصاة إلى الحاسوب .... 13

•  مراحل تطور الحاسب .... 16

•  لغة الآلة .... 18

•  لغة C  .... 24

•  لغة C++ و Visual C++ .... 25

•  لغة Java و j++ .... 26

•  لغة C# .... 27

 

-2-

التفكير البرمجي


•  الخوارزمية Algorithm  .... 31

•  مخطط تنفيذ البرنامج Flowchart  .... 32

•  مجالات البرمجة  .... 34

 

-3-

إعداد اللغة

 

•  إعداد Visual Studio NET  .... 40

•  بيئة التطوير المتكاملة IDE  .... 45

•  بدء مشروعٍ جديد  .... 47

 

- 4 -

المتغيرات Variables والثوابت Constants

 

•  المتغيّرات Variables  .... 53

  -  تعريف المتغيرات Declaring Variables  .... 54

  -  نهاية الأمر في سي شارب  .... 57

  -  التعليقات Comments .... 59

  -  حالة الأحرف  .... 60

  -  برنامجك الأول في سي شارب .... 61

  -  شروط تسمية المتغيرات .... 67

  -  قراءة وتعديل قيم المتغيرات  .... 68

  -   أنواع المتغيرات Types of Variables  .... 69

  -  تحويل القيم بين أنواع المتغيّرات .... 70

•  صف القيم Value Tuple .... 71

•  الثوابت Constants  .... 77

•  المُرقَّمَات Enumerators  .... 79

 

-5-

التعامل مع الأرقام

 

•  أنواع المتغيّرات الرقميّة  .... 83

•  المعامل sizeof .... 85

•  الفواصل الرقمية Digit Separators .... 86

•  المعاملات الحسابية Arithitic Operators .... 87

•  ترتيب تنفيذ العمليات الحسابية  .... 88

•  زيادة قيمة متغير رقمي  .... 89

•  تجاوز سعة المتغير الرقمي Overflow  .... 92

•  تصحيح البرنامج Debugging  .... 95

•  دقة الأعداد العشريّة Decumal Types Precision .... 99

•  المتغيرات العشريّة Decimal Data Type  .... 106

•  القيم الرقمية الشاذّة Infinity و NaN .... 107

 

-6-

نظام العدّ الثنائي والعمليات المنطقية

 

•  النظام الثنائي Binary System  .... 111

•  أنظمة العد  .... 113

•  أقصى عدد عشري يقبله عدد من الخانات في النظام الثنائي  .... 117

•  الوحدة الثنائية Byte  .... 118

•  الإزاحة إلى اليمين واليسار  .... 121

•  الأعداد الموجبة والأعداد السالبة  .... 124

•  العمليّات الحسابيّة في النظام الثنائي .... 126

•  المتغيرات المنطقية Boolean Variables  .... 127

•  المعاملات المنطقيّة Logical Operators: .... 130

  -  المعامل "ليس" NOT  .... 131

  -  المعامل "و" AND  .... 133

  -  المعامل "أو" OR  .... 136

  -  المعامل "أو المقصورة" XOR  .... 139

•  إجراء عملية الجمع باستخدام العمليات المنطقية  .... 142

•  المؤشّرات Flags والأقنعة Masks  .... 146

  -  تكوين قناع And  .... 148

  -  تكوين قناع Or  .... 152

  -  تكوين قناع XOR  .... 153

  -  المرقّمات Enums كمؤشّرات Flags  .... 155

•  أنظمة عد أخرى  .... 157

 

-7-

جمل الشرط

 

•  جملة الشرط if Statement .... 160

  -  جملة الشرط if else  .... 162

  -  كيف تعمل جملة الشرط  .... 165

  -  قطع الشرط Short-Circuiting  .... 167

•  جملة تبديل الحالة switch statement .... 170

•  تعبير تبديل الحالة switch expression .... 175

•  المعامل الثلاثي Ternary operator (?) .... 178

•  أمر القفز goto  .... 179

 

-8-

حلقات التكرار Loops

 

•  حلقة التكرار "من إلى" for Loop  .... 182

  -  فهم كيف تعمل الحلقة for  .... 184

  -  التكرار المعكوس  .... 185

  -  أمر الخروج break  .... 185

  -  أمر الاستمرار continue .... 186

  -  معاملات الحلقة for  .... 187

•  حلقة الدوران do…while  .... 189

  -  صيغة الدوران اللانهائيّة  .... 190

•  حلقة التكرار  while .... 192

•  الجمل المتداخلة Nested Statements .... 194

  -  تنسيق المقاطع المتداخلة .... 195

  -  استخدام الأمر Continue في المقاطع المتداخلة .... 197

 

-9-

المصفوفات Arrays

 

•  ما هي المصفوفة؟  .... 199

•  تعريف المصفوفة Array Declaration .... 200

•  التعامل مع خانات المصفوفة .... 201

•  تجاوز عدد خانات المصفوفة  .... 203

•  وضع القيم الابتدائيّة للمصفوفات Initializing Arrays  .... 204

•  المصفوفة وحلقات التكرار Loops  .... 205

  -  حلقة التكرار  foreach  .... 207

•  نسخ المصفوفات  .... 209

•  حدود المصفوفة Array Bounds  .... 212

•  تغيير عدد خانات المصفوفات  .... 213

  -  الاحتفاظ ببيانات المصفوفة عند تغيير حجمها  .... 214

  -  محو المصفوفة  .... 217

•  البحث في المصفوفة  .... 218

•  عكس خانات المصفوفة  .... 220

•  أصغر وأكبر قيمة في المصفوفة  .... 224

•  ترتيب المصفوفة بالاختيار Selection Sort .... 226

•  المصفوفة متعدّدة الأبعاد Multidimensional Array  .... 229

  -  وضع القيم الابتدائية في المصفوفات متعدّدة البعد  .... 231

  -  المرور عبر خانات مصفوفة متعددة الأبعاد  .... 232

  -  تغيير عدد خانات المصفوفة متعددة الأبعاد  .... 234

•  مصفوفة المصفوفات Array of Arrays  .... 235

  -  مصفوفة المصفوفات متعددة الأبعاد  .... 237

•  الفهرس Index ونطاق الخانات Range .... 238

  -  استخدام الفهرس مع المصفوفة .... 240

  -  استخدام النطاق مع المصفوفة .... 241

 

-10-

التعامل مع الحروف والنصوص

 

•  ترميز ASCII .... 244

•  الحروف Characters  .... 249

•  النصوص Strings  .... 251

•  النصوص والحروف  .... 252

•  النصوص والأعداد  .... 253

•  تشبيك النصوص Concatenation  .... 254

  -  النص التعويضي Interpolated String .... 256

  -  معالج النص التعويضي Interpolated String Handler .... 259

•  استخدام الفهرس والنطاق مع النص .... 261

•  هل النصوص مرنة؟  .... 262

•  مقارنة النصوص  .... 264

 

-11-

التعامل مع الكائنات Objects

 

•  تعريف الكائن  .... 266

•  العدم null  .... 267

•  إنشاء نسخة جديدة من الكائن باستخدام الكلمة new  .... 270

•  الأنواع القيمية Value Types والأنواع المرجعية Reference Types  .... 271

•  تعريف مصفوفة من الكائنات  .... 277

•  تحويل الكائن إلى نوع آخر Type Conversion .... 278

•  الكائن المرن dynamic .... 279

•  استنتاج نوع المتغير Type Inference  .... 280

•  اسم العنصر nameof .... 282

 

-12-

كتابة واستخدام الدوال Functions

 

•   لماذا نحتاج إلى الدوال؟  .... 284

•  تعريف الدوال .... 286

  -  كيفية استدعاء الدالة؟  .... 288

  -  التحقق من صحة المدخلات Validation .... 290

•  المعاملات Parameters  .... 292

  -  اتجاه المعامل Parameter Direction  .... 293

    o  معاملات الإدخال القيمية Value Parameters .... 293

    o  المعاملات المرجعية ref  .... 294

    o  معاملات الإدخال المرجعية in .... 298

    o  معاملات الإخراج المرجعية out  .... 300

  -  متطلبات استدعاء الدوال .... 301

  -  المعاملات الاختياريّة Optional Parameters .... 302

  -  مصفوفة المعاملات params .... 304

  -  المعامل المصفوفة Array Parameter  .... 306

•  أنواع أخرى للقيم المعادة Return Values .... 309

  -  الدوال التي تعيد صفا من القيم Tuple .... 316

  -  الدوال التي تعيد قيما مرجعية ref Returns .... 318

  -  الدوال التي تعيد قيما مرجعية للقراءة فقط ref readonly .... 322

•  دالة ترتيب الفقاعة Bubble Sort .... 323

•  الدوال عامة النوع Generic Type Functions  .... 329

•  المندوب Delegate  .... 333

  -  استخدام المندوب كمعامل للدالة .... 336

  -  المندوب عام النوع Generic Type Delegate  .... 338

•  الدوال المجهولة Anonymous Functions .... 340

•  الدوال الفورية Lambda Expressions   .... 341

•  الدوال الموضعية Local Functions .... 347

•  الدوال مختصرة التعريف Expression-bodied Functions .... 350

•  دالة بداية البرنامج Program Startup  .... 351

 

-13-

الدوال الارتدادية Recursive Functions

 

•  استدعاء الدالة لنفسها .... 356

•  تنفيذ حلقة تكرار بدالة ارتداديّة  .... 359

•  حساب مجموع مصفوفة ارتداديّا .... 362

•  دالة المضروب Factorial   .... 365

•  الترتيب السريع Quick Sort   .... 368

•  البحث الثنائيّ Binary Search   .... 384

 

-14-

السجلات Structures

 

•  تعريف السجل .... 390

•  حجز السجل ووضع القيم الابتدائية فيه .... 393

•  التغليف Encapsulation .... 397

•  الحماية Protection .... 398

•  الاستشعار الذكي Intillisense .... 399

•  السجلات الجزئية Partial Structures  .... 400

•  نسخ سجل إلى آخر  .... 401

•  اختبار تساوي سجلين  .... 402

•  استبدال المعامل Operator Overriding  .... 404

•  السجلات والمصفوفات  .... 406

•  السجلات والدوال .... 408

  -  الدوال التي تعيد سجلات  .... 408

  -  السجلات كمعاملات للدوال  .... 415

  -  الدوال كأعضاء للسجلات  .... 416

•  العناصر المشتركة (الثابتة) Static Members  .... 422

•  حدث إنشاء السجلّ  Constructor  .... 426

•  السجلات المتداخلة Nested Structures  .... 432

•  الخصائص Properties  .... 435

  -  المتغيّرات والخصائص  .... 435

  -  تعريف الخصائص  .... 439

  -  قصاصات الكود Code Snippet .... 441

  -  الخصائص التي يمكنك قراءتها فقط Read-Only Properties  .... 443

  -  الخصائص التي يمكنك تغييرها فقط Write-Only Properties  .... 444

  -  الخصائص التي يمكن إعدادها فقط Init-Only Properties .... 445

  -  مجالات تعريف مختلفة للخاصية  .... 446

  -  الخصائص ذاتية التعريف Auto Implemented Properties  .... 447

  -  المفهرس Indexer واستخدام السجل كمصفوفة .... 449

•  مطابقة أنماط الخصائص Property Pattern Matching .... 451

•  سجلات للقراءة فقط Read Only Structs .... 454

  -  دوال للقراءة فقط Read Only Functions .... 456

•  تعريف وإطلاق الأحداث Events  .... 461

  -  سجل المنبه Clock Structure  .... 463

  -  الأحداث التي تعيد قيمة  .... 468

  -  إزالة معالج الحدث .... 469

•  تعليقات XML .... 471

 

-15-

الفئات Classes

 

•  ما هي الفئة؟  .... 481

•  تعريف الفئة .... 482

•  تعريف عناصر الفئة  .... 483

•  الفروق بين الفئات والسجلات .... 485

•  الإنشاء من خلال الاستخدام .... 448

•  الفئات الجزئية Partial Classes .... 490

•  تعدد تعريفات الوسائل Method Overloading  .... 492

  -  الشروط التي تجب مراعاتها عند تعدّد التعريفات  .... 495

•  نطاقات الأسماء Namespaces  .... 497

  -  جملة نطاق الاسم Namespace Statement .... 500

  -  نطاقات الاسم العامة Global Namespaces .... 500

•  مناطق الكود Regions .... 501

•  الوسائل الإضافية Extension Methods  .... 502

•  منشئ الفئة Class Constructor  .... 506

•  مفكك الفئة Class Destructor .... 508

  -  أنماط صف القيم والمفكك Tuple and Decostructor Patterns .... 509

•  تعريف وإطلاق الأحداث في الفئات  .... 511

•  وضع القيم الابتدائية للكائنات Object Initialization  .... 515

•  الأنواع المجهولة Anonymous Types  .... 518

•  مجال العناصر Members Scope  .... 520

•  نطاق المتغيرات Variables Scope  .... 522

  -  الحقول Fields .... 522

  -  المتغيّرات الموضعيّة Local Variables  .... 523

  -  المتغيرات المقطعية Block Variables  .... 523

  -  عمر المتغيّر Variable Lifetime  .... 526

•  فحص أنواع المتغيّرات  .... 528

•  مطابقة أنماط الأـنواع Type Pattern Matching .... 532

•  مصمم الفئات Class Designer .... 537

 

-16-

نماذج الويندوز Windows Forms

 

•  تطبيقك الأول في عالم النوافذ  .... 541

  -  في بيئة التطوير IDE  .... 543

  -  الفئات في كل مكان  .... 545

  -  صندوق الأدوات .... 546

  -  نافذة الخصائص .... 547

  -  بعض خصائص مربع النص  .... 548

•  البرمجة الموجهة بالأحداث Event-driven Programming .... 551

•  استخدام فئة المنبه في تطبيقات الويندوز  .... 555

•  استخدام النموذج والأدوات كمعاملات للدوال  .... 558

 

-17-

السمات Attributes

 

•  السمات الخاصة Custom Attrinutes .... 562

•  تعريف حقول عامة للسمة  .... 565

•  تحديد العناصر المسموح باستخدام السمة معها  .... 565

•  استخدام قيم السمات  .... 568

•  السمات عامة النوع Generic Attributes .... 570

•  معالج النص التعويضي Interpolated String Handler .... 573

  -  معالجة المحاذاة والتنسيق .... 578

  -  إنشاء معالج تعويضي خاص بفئة معينة .... 581

  -  إرسال معاملات إضافية للمعالج .... 585

  -  إيقاف تفيذ المعالج في أي وقت .... 588

  -  محلل النص التعويضي Interpolated Parser .... 592

 

-18-

تراكيب البيانات Data Structures

 

•  أهم ما سنتعلمه في هذا الفصل .... 604

•  المجموعات Collections .... 605

•  القائمة الخطية Linear List  .... 606

•  المجموعات عامة النوع Generic Type Collections  .... 633

•  القائمة المترابطة Linked List  .... 637

  -  معالجة الأخطاء Handling Errors .... 644

  -  اختبارات الوحدات Unit Tests .... 653

  -  إنشاء خطأ خاص Custom Exception .... 669

  -  إنشاء عدادات مخصصة بتعريف الدالة GetEnumerator .... 701

  -  تعريف بعض المعاملات للقائمة Overloading Operators .... 719

  -  معالجة انهيار الاختبارات Test Crash .... 723

  -  التحويل الضمني Implicit والتحويل الصريح Explicit .... 732

  -  قائمة القوائم  .... 738

•  فئة الطابور Queue Class  .... 739

  -  الطابور المبني بالمصفوفة  .... 739

  -  إنشاء مكتبة كود Code Library .... 748

  -  الطابور المبني بالقائمة المترابطة  .... 755

  -  فيم نستخدم فئة الطابور؟  .... 757

•  فئة الرصة Stack  .... 758

  -  الرصة المبنية بالمصفوفة  .... 758

  -  الرصة المبنية بالقائمة المترابطة  .... 763

  -  عكس خانات مصفوفة باستخدام الرصة  .... 765

  -  الرصة والإجراءات الارتدادية  .... 766

  -  التراجع والإعادة باستخدام الرصة .... 766

  -  إنشاء آلة حاسبة باستخدام الرصة  .... 784

  -  التعويض في المعادلات  .... 798

  -  تطبيقات أخرى للرصة .... 800

•  فئة الشجرة Tree Class  .... 801

  -  ترتيب مصفوفة باستخدام الشجرة  .... 805

  -  الشجرة متعددة الأفرع  .... 810

  -  إنشاء آلة حاسبة باستخدام الشجرة  .... 813

•  مصفوفة الخانات الثنائية BitArray  .... 823

 

-19-

الوراثة Inheritance

 

•  إعادة استخدام الكود  .... 829

•  الوراثة Inheritance  .... 832

•  تعدد تعريفات الوسائل Method Overloading  .... 834

•  إخفاء وسائل الفئة الأم  .... 836

•  استبدال الوسائل Method Overriding .... 838

  -  التحكم في استدعاء الدوال المستبدلة  .... 841

  -  منع الاستبدال بكلمة  sealed .... 843

•  وراثة فئات دوت نت .... 843

•  منع الوراثة بكلمة sealed  .... 847

•  تعدد الأشكال Polymorphism وإنشاء فئات الأشكال الهندسية .... 848

•  التحويل من وإلى الفئة الأم  .... 857

•  منشئ الكائن Constructor  .... 859

•  مُنهِي الكائن Finalizer .... 863

•  الفئات الأساسية المجردة Abstract Base Classes .... 866

•  مجال الفئة وحماية الأعضاء الخاصة  .... 869

•  مطابقة الأنماط المتداخلة .... 873

•  إنشاء آلة حاسبة بالفئة المجردة .... 876

•  نبذة عن كتابة مترجمات الكود Compilers .... 889

 

-20-

الواجهات Interfaces

 

•  تعريف الواجهة  .... 894

•  تمثيل الواجهة Implementing Interface  .... 896

  -  تمثيل أكثر من واجهة  .... 898

  -  التمثيل الصريح Explicit Implementation  .... 901

  -  التمثيل الافتراضي Default Implementation .... 903

•  الواجهة كامتداد للفئات  .... 906

•  واجهة القابلية للعد IEnumerable Interface .... 909

•  واجهة القابلية للمقارنة IComparable  .... 913

  -  ترتيب القائمة المترابطة  .... 917

  -  البحث الثنائي في القائمة المترابطة المرتبة  .... 918

  -  تعريف المعاملات & و | و ^ في القائمة المترابطة  .... 920

•    واجهة القابلية للفناء IDisposable Interface .... 924

•  التفاوت Variance .... 933

 

-21-

أبنية البيانات Records

 

•  فئة البيانات Record Class .... 940

•  الصيغة الموضعية Positional Syntax .... 942

  -  إضافة سمات Attributes للصيغة الموضعية .... 943

  -  كتابة تعليقات XML للصيغة الموضعية .... 944

  -  صيغة التعريف المختلطة .... 944

  -  وراثة فئة البيانات Record Class Inheritance .... 948

  -  تمثيل الواجهات في الصيغة الموضعية .... 950

•  فئة البيانات عامة النوع Generic Record Class .... 952

•  سجل البيانات Record Structure .... 952

 

-22-

دوال API

 

•  برمجة الويندوز Windows Programming .... 954

•  أين توجد دوال API؟ .... 960

•  استدعاء دوال API في سي شارب .... 960

•  منح الدالة اسما مستعارا .... 962

•  عرض مربع حوار اختيار مجلد .... 963

•  تغيير شكل النموذج .... 964

•  إغلاق الجهاز من برنامجك .... 965

•  تعطيل بعض الأزرار الخاصة عن العمل .... 966

•  التوجيهات الشرطية Conditional Directives .... 968

 

•  خاتمة .... 970

•  الفهرس .... 973

•  عن الكاتب .... 992

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.